因此在 Windows 上的 VS Code 上编译 C 绝对是一场噩梦。
我能够“强制”VSCode 编译和调试我的 C/C++ 程序的唯一方法是:
%comspec% /k "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
.bat
文件,正如类似的StackOverflow 问题 所建议的那样。
cl.exe
在 VSCode 中“本地”工作,而不需要依赖开发人员命令提示符或任何脚本。有没有办法设置 VSCode,以便
cl.exe
可以用于编译和调试 C/C++ 代码,而无需每次都执行这些手动步骤?我正在寻找更永久的解决方案来在 Windows 上正确设置
cl.exe
的环境。
步骤(对于 x64):
cl.exe
的位置,通常位于:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\[version]\bin\Hostx64\x64
Win+R 打开“运行”对话框,然后键入 sysdm.cpl
获取系统属性
Advanced
选项卡
Environment Variables
System variables
部分找到
Path
变量并双击它
New
并添加
cl.exe
的位置
OK
VARS
时设置的
Developer Command Prompt for VS YYYY
:
x64 Native Tools Command Prompt for VS YYYY
。它必须是
x64
,否则编译时会出现
library machine type 'x86' conflicts with target machine type 'x64'
错误。
cd
到您的首选目录,因为我们将创建一个文件
set > envvars.txt
envvars.txt
找到以下3行:a)
INCLUDE=C:\...
LIB=C:\...
c) 和 LIBPATH=C:\...
VARS
文件将这些
System variables
添加到
*.bat
中。我选择了
*.bat
文件方式:
envvars.txt
转换为这个
*.bat
文件:a) 在每个变量前面加上
setx
(永久设置环境变量)b) 将
=
替换为空格
c) 涉及带引号的路径 ""
/M
(确保为系统设置变量而不仅仅是当前用户)
setx INCLUDE "C:\Program Files\..." /M
setx LIB "C:\Program Files\..." /M
setx LIBPATH "C:\Program Files\..." /M
envvars.txt
重命名为
envvars.bat
重新启动后,您应该能够启动 VS Code,然后进行编译和调试。 (假设您的
TASKS.JSON
和
LAUNCH.JSON
设置正确)