一個環境變量在一個makefile,我有以下幾點:使用的GNU makefile文件SHELL變量
這是在MS Windows。情況是make
在PATH
(或直接調用)中,但可接受的shell(即sh.exe
)不在PATH
中。也不是全局修改PATH
變量以包含sh.exe
(Cygwin,msysgit和更多之間的潛在衝突太多)的選項。因此,make
默認使用Windows cmd.exe
命令處理器,這並不理想。
它是但是,設置除PATH
以外的系統範圍環境變量的選項。所以我有一個明智的想法,把一個路徑放到包含sh.exe的目錄中SOME_DIRECTORY
,然後在makefile的SHELL
變量中使用它。但它不工作了一段令人沮喪的原因:
make
echo sh.exe
sh.exe
如果我用比SHELL
任何其他變量和回聲它,然後它打印預期的結果。但是,當然這並沒有改變shell的預期效果。
我在這裏錯過了什麼?我需要做什麼才能使用具有自定義用戶指定名稱的環境變量(即不是SHELL
,PATH
等)影響make所使用的shell?
不幸的是,在Windows上使用shell的行爲很複雜,因爲Windows沒有像樣的shell。在GNU make手冊中有一些關於Windows特定行爲的討論:http://www.gnu.org/software/make/manual/html_node/Choosing-the-Shell.html如果這不能回答你的問題,我建議你在[email protected]郵件列表上詢問,該郵件列表專門針對有關Windows上的GNU make的問題 - 很多人對此非常瞭解。 – MadScientist
使用Cygwin make。 _Very_兼容和跨平臺。 (例如,你的例子工作正常。) – bobbogo