【发布时间】:2026-02-19 01:35:02
【问题描述】:
我正在尝试将项目移植到新系统,但生成文件已停止工作。需要注意的是,这两个计算系统共享数据存储。
为了兼顾构建过程,我在 make 文件中使用了几个 shell 调用。在新系统上,这会导致错误
make: /usr/bin/sh: Command not found
在新系统上,shell 可执行文件位于/bin/,而在旧系统上则位于/usr/bin。我没有明确告诉 make 查看/usr/bin/,我不知道如何告诉它。我能找到的与该主题相关的唯一其他讨论是关于检测存在哪个 shell,而不是帮助 GNU 找到正确的 shell。
How to detect shell used in GNU make?
关于如何解决这个问题的任何想法?
【问题讨论】:
-
非常非常令人惊讶的是,有一个系统没有
/bin/sh可用。几乎每个曾经编写的 shell 脚本都包含#!/bin/sh和顶部,如果/bin/sh不存在,它们都不会起作用。 -
系统确实有
/bin/sh,但由于某种原因make正在搜索/usr/bin/sh