我尝试使用以下 makefile 处理器在 Windows 的 makefile 中使用curl、rm、start 等命令:http://gnuwin32.sourceforge.net/packages/make.htm
这似乎不可能,相反,我的命令似乎非常有限。有哪些方法可以扩展我的命令集?
如果有任何帮助,我将不胜感激。谢谢
最佳答案
如果您对仅限 Windows 的解决方案感到满意,您可以调用 powershell.exe
直接来自您的Makefile
,如your answer .
但是,我强烈建议避免使用类似 Unix 的 PowerShell 别名,例如 curl
对于 Invoke-WebRequest
和rm
对于 Remove-Item
,因为虽然它们的目的在抽象上是相似的,但它们的语法通常非常不同。只需使用 PowerShell 的 native 命令名称以避免歧义。
请注意,使用 Shell := <default shell executable>
make
的 Windows 端口似乎被忽略您链接到。
如果您想要跨平台兼容性:
任一:使用WSL ,它为您提供了 Linux 发行版的选择,其中
make
和标准 Unix 实用程序本身就可用 - 那么您就不需要cmd.exe
也不是 PowerShell。和/或:使用PowerShell Core 并按如下方式调用您的命令:
pwsh -noprofile -command <your command>
- 在 Windows 上使用 WSL 的跨平台解决方案中,您可以通过声明
SHELL := pwsh -NoProfile
来简化调用。在MakeFile
的顶部,之后就可以直接调用PowerShell(Core)命令了。
- 在 Windows 上使用 WSL 的跨平台解决方案中,您可以通过声明
关于windows - 如何使用 gnuwin32 Makefile 执行 powershell/cmd 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51697218/