我部署的一部分是在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 –