我正在尝试将项目移植到新系统,但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?
有关如何解决此问题的任何想法?
答案 0 :(得分:3)
使用SHELL
环境变量。在调用make之前在环境中设置它(export SHELL=/bin/sh
),或者在make命令行上放置SHELL=/bin/sh
。
可能问题实际上是你在新系统上的启动文件(.profile或.login或其他类似文件)中错误地设置了SHELL=/usr/bin/sh
,这会导致任何尝试使用它的程序出现问题,而不仅仅是制作。