强制 GNU make 使用特定的 shell



我正在尝试将项目移植到新系统,但生成文件已停止工作。 需要注意的是,这两个计算系统具有共享的数据存储。

为了处理构建过程,我在 make 文件中使用了几个shell调用。 在新系统上,这会导致错误

make: /usr/bin/sh: Command not found

在新系统上,shell 可执行文件位于 /bin/ 中,而在旧系统上,可执行文件位于 /usr/bin 中。我没有明确告诉制作要看/usr/bin/,我不知道如何告诉它。 我能找到的唯一与这个主题相关的其他讨论是关于检测存在哪个 shell,而不是帮助 GNU 找到正确的 shell。

如何检测 GNU 制作中使用的 shell?

关于如何解决这个问题的任何想法?

使用 SHELL 环境变量。 在调用 make 之前,要么在环境中设置它(export SHELL=/bin/sh(,要么SHELL=/bin/sh放在 make 命令行上。

问题可能实际上是您在新系统上的启动文件(.profile或.login或类似文件(中错误地设置了SHELL=/usr/bin/sh,这将给任何尝试使用它的程序带来问题,而不仅仅是制作。

最新更新