强制GNU make使用特定的shell

时间:2018-05-01 00:45:56

标签: shell makefile gnu-make

我正在尝试将项目移植到新系统,但makefile已停止工作。重要的是要注意两个计算系统共享数据存储。

为了兼顾构建过程,我在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?

有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:3)

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

可能问题实际上是你在新系统上的启动文件(.profile或.login或其他类似文件)中错误地设置了SHELL=/usr/bin/sh,这会导致任何尝试使用它的程序出现问题,而不仅仅是制作。