如何使用 git bash 中的命令行 Visual Studio 编译器?
Posted
技术标签:
【中文标题】如何使用 git bash 中的命令行 Visual Studio 编译器?【英文标题】:How can I use the command-line Visual Studio compiler from git bash? 【发布时间】:2020-09-22 11:52:33 【问题描述】:与this 问题有关。
我想在 Windows 上从 git bash 运行 cl.exe
。通常您需要开发人员提示来执行此操作,所以我这样做:
cmd //V //K "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat"
这会将开发人员提示作为子 shell 打开。如果我愿意,我可以从那里运行cl
。
但是,如果我可以在不进入子 shell 的情况下从 git bash 运行命令,那就太好了。我会很高兴:
以某种方式“source
ing”VsDevCmd.bat
文件以导出它设置为环境中的变量的变量,因此我可以从 bash 运行 cl
,或者
将 //K
更改为 //C
并更改为当前 (bash) 工作目录,然后执行 cl
并转发任何参数。如果是别名,则加分。
根本想不出#1。
我需要关于 #2 的语法方面的帮助,因为当
cmd //V //C "C:\Program Files (x86)\...\VsDevCmd.bat"
在它执行批处理脚本并立即退出的意义上起作用,我不知道如何将多个命令链接在一起。运行
cmd //V //C "C:\Program Files (x86)\...\VsDevCmd.bat & cl"
例如,给出
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
如何直接从 git bash 执行cl.exe
,而不需要单独的提示?
【问题讨论】:
最好的办法是从已经执行 vsdevcmd.bat 的 Windows 控制台启动 bash。 另一种选择是运行set > environment.txt
将 VSDev 环境保存到文件中,然后自己编写一个 bash 脚本来处理该文本并将其与您的 bash 环境合并。
我认为你需要在看到你需要的东西之后手动设置你的环境。没什么大不了!所有路径和允许的字符都是不同的。你不需要 vsdevcmd.bat .. 这并不神奇.. 你只需要它导出的 一些 (不是全部)变量。我刚刚成功地做到了export PATH=$PATH:/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio/2019/Professional/VC/Tools/MSVC/14.24.28314/bin/Hostx86/x86
,我可以访问 cl.exe(特别是)。添加你的 lib 路径和它需要的其他东西应该不会花很长时间。
在内部使用两次引号,如cmd //V //C """C:\Program Files (x86)\...\VsDevCmd.bat" & cl""
@jwdonahue 感谢这个技巧,我最终基本上做到了,但主要是手动修复它。
【参考方案1】:
我认为没有简单的方法可以做到这一点。我通过使用 cmake 来处理我的项目并只是做
来绕过这个问题mkdir build
cd build
cmake -G "Visual Studio 16 2019" ..
cmake --build .
也许比我聪明的人可以查看 CMake 的源代码并弄清楚 --build
标志是如何工作的。
【讨论】:
【参考方案2】:对于任何使用新的 Windows 终端在这里徘徊的人,这是我的配置文件,以使用 git bash 和 Visual Studio 编译器:
"colorScheme": "One Half Dark",
"commandline": "\"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Professional\\VC\\Auxiliary\\Build\\vcvars64.bat\" && \"C:\\Program Files\\Git\\bin\\bash.exe\" --login",
"cursorShape": "bar",
"font":
"face": "Lucida Sans Typewriter"
,
"guid": "14ad203f-52cc-4110-90d6-d96e0f41b64d",
"icon": "%PROGRAMFILES%/Git/mingw64/share/git/git-for-windows.ico",
"name": "Git Bash",
"tabTitle": "Git Bash"
【讨论】:
以上是关于如何使用 git bash 中的命令行 Visual Studio 编译器?的主要内容,如果未能解决你的问题,请参考以下文章