我正在尝试将项目移植到新系统,但生成文件已停止工作。 需要注意的是,这两个计算系统具有共享的数据存储。
为了处理构建过程,我在 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
,这将给任何尝试使用它的程序带来问题,而不仅仅是制作。