windows - 如何使用 gnuwin32 Makefile 执行 powershell/cmd 命令?

标签 windows powershell makefile gnu-make

我尝试使用以下 makefile 处理器在 Windows 的 makefile 中使用curl、rm、start 等命令:http://gnuwin32.sourceforge.net/packages/make.htm

这似乎不可能,相反,我的命令似乎非常有限。有哪些方法可以扩展我的命令集?

如果有任何帮助,我将不胜感激。谢谢

最佳答案

如果您对仅限 Windows 的解决方案感到满意,您可以调用 powershell.exe直接来自您的Makefile ,如your answer .

但是,我强烈建议避免使用类似 Unix 的 PowerShell 别名,例如 curl对于 Invoke-WebRequestrm对于 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 - 如何使用 gnuwin32 Makefile 执行 powershell/cmd 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51697218/

相关文章:

php - 为什么在 IIS7 Server 中上传大文件时会出现 Wordpress HTTP ERROR?

Excel VBA 测试或获取硬件加速设置并禁用 Windows 动画设置

windows - 用SetWindowPos 'normal way' 移动一个窗口是做什么的?

powershell - 祖 parent 文件夹名称到文件名

c - 在 Cygwin 中查找文件夹的绝对路径

linux - F#、Linux 和 makefile

c - 是否有计算 printf 格式字符串的参数数量的函数?

powershell - 需要在 PowerShell 脚本中使用 ClosedXML 设置单元格背景颜色

c++ - 编译时是否需要动态库

csv - 导出列表中的所有列及其数据值