我部署的一部分是在Windows上運行一個名爲「deploy」的Makefile上運行目標,其中包括taskkill.exe和psexec.exe。兩者都在%PATH%
的c:\ windows \ system32中。Windows上的GNU Make看不到一些可執行文件
當我試圖做出這個目標時,我收到一條消息,指出無法找到psexec。 Taskkill按預期工作。
作爲一個測試,我試圖簡單地dir c:\windows\system32\psexec.exe
,但從makefile,我得到一個「文件未找到」。但是,在同一個shell中,我可以運行相同的dir命令並獲得肯定的響應。
爲什麼不能看到文件存在,更少運行呢?
這裏有一個例子Makefile的目標:
exetest:
@echo ------------------------------
-dir /b c:\Windows\System32\PsExec.exe
@echo ------------------------------
-dir /b c:\Windows\System32\taskkill.exe
,這是在命令提示符下會發生什麼:
C:\Users\Owner\Documents\GitHub>make exetest
------------------------------
dir /b c:\Windows\System32\PsExec.exe
File Not Found
make: [exetest] Error 1 (ignored)
------------------------------
dir /b c:\Windows\System32\taskkill.exe
taskkill.exe
C:\Users\Owner\Documents\GitHub>dir /b c:\Windows\System32\PsExec.exe
PsExec.exe
C:\Users\Owner\Documents\GitHub>dir /b c:\Windows\System32\taskkill.exe
taskkill.exe
我正在使用GNU make 3.81和Windows 7
我已經嘗試了psexec和psexec64 - 兩者都有相同的行爲。
如果make是一個32位程序,它將無法在system32中看到64位可執行文件。你需要使用sysnative –