0
我正在为具有多个模块的应用程序编写makefile(GNU make)。更准确地说,对于每个模块,我有一个makefile。另外,我有一个调用每个模块的makefile的主makefile。我一直试图从这些makefile中分解出各处都需要的几个变量。我已经包括了init.mk
文件在主makefile文件用下面的开头:生成文件条件失败,已定义变量
export OS = linux
ifeq ($(OS),linux)
export SHELL := /bin/bash
else ifeq ($(OS),windows)
export SHELL := cmd
else
export SHELL :=
endif
当我运行make这一点,我得到一个错误127,因为对比测试失败,SHELL
变量设置为无。如果我在else
部分中添加/bin/bash
,make不会失败。
为什么OS
变量没有正确比较?
问候
制造手柄'在特殊SHELL'取决于操作系统的方式,在Windows上,它甚至可能[忽略任何你所说的](https://www.gnu.org/software/make/manual/make.html#Choosing-the-Shell)。 – user657267
'export OS = linux'行的末尾是否有任何额外的空格? – MadScientist
我有一个空间和评论 – BobMorane