misakawaque
V2EX  ›  问与答

vscode 引入 msvc 出错了,如何解决呢?

By misakawaque at 2021 年 9 月 17 日 · 2939 次点击

配置代码如下

properities

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "D:/Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-msvc-x64"
        }
    ],
    "version": 4
}

task

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.19041.0",
            "compilerPath": "D:/Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-msvc-x64"
        }
    ],
    "version": 4
}

错误提示

> Executing task: C/C++: cl.exe 生成活动文件 <
正在启动生成...
cl.exe /Zi /EHsc /nologo /Fe: a1.exe a1.cpp
'cl.exe' �����ڲ����ⲿ���Ҳ���ǿ����еij���
�����������

生成已完成,但出现错误.
终端进程启动失败(退出代码: -1)。

终端将被任务重用,按任意键关闭。

当我使用 vs2019 的 devtools 输入cl a1.cpp的时候,a1.exe 和 a1.obj 正常生成和运行,但当使用 vscode 内的 ctrl+shift+b 的时候显示上述错误信息

参考的教程 https://blog.csdn.net/qq_38981614/article/details/99629597

第 1 条附言  ·  2021 年 9 月 17 日

task贴错了 是这个

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: cl.exe 生成活动文件",
			"command": "cl.exe",
			"args": [
				"/Zi",
				"/EHsc",
				"/nologo",
				"/Fe:",
				 "a1.exe",
				"a1.cpp"
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$msCompile"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "编译器: cl.exe"
		}
	]
}
12 条回复  •  2021-09-18 11:12:10 +08:00
ysc3839
   1
ysc3839  
   2021 年 9 月 17 日 via Android
你确定 task 的内容是对的?为什么跟 properities 一样?
misakawaque
   2
misakawaque  
OP
   2021 年 9 月 17 日
@ysc3839 啊是的,贴错了
ysc3839
   3
ysc3839  
   2021 年 9 月 17 日
task 里面的 command 写完整路径试试?
misakawaque
   4
misakawaque  
OP
   2021 年 9 月 17 日
@ysc3839 将 command 修改为了"command": "D:/Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29910/bin/Hostx64/x64/cl.exe"

但是错误报告没有变化仍显示
> Executing task: C/C++: cl.exe 生成活动文件 <

正在启动生成...
cl.exe /Zi /EHsc /nologo /Fe: a1.exe a1.cpp
'cl.exe' �����ڲ����ⲿ���Ҳ���ǿ����еij���
�����������

生成已完成,但出现错误.
终端进程启动失败(退出代码: -1)。
misakawaque
   5
misakawaque  
OP
   2021 年 9 月 17 日
@misakawaque
不过这些文件都是插件自动配置的
修改的地方在于编译器是 x86/x64/win32 以及在其中加入了`a1.cpp`和`a1.exe`
ysc3839
   6
ysc3839  
   2021 年 9 月 17 日
@misakawaque 看上去修改后并没有生效,我也不知道是什么问题了……
kokutou
   7
kokutou  
   2021 年 9 月 17 日 via Android
改改编码,搞清楚那堆乱码报错信息说的是啥
ysc3839
   8
ysc3839  
   2021 年 9 月 17 日
@kokutou 盲猜是
不是内部或外部命令,也不是可运行的程序
或批处理文件。
mangohaoming
   9
mangohaoming  
   2021 年 9 月 17 日
一键安装 C/C++ extension pack 插件解君愁,当然前提是得使用 cmake
Vinty
   10
Vinty  
   2021 年 9 月 17 日
估计是标准库的 include 或者 library 的路径没有
用 cl 命令行,要在 msvc 的 prompt 环境里面启动 vscode
misakawaque
   11
misakawaque  
OP
   2021 年 9 月 18 日
@Vinty 只能开着那个黑框来用么
Vinty
   12
Vinty  
   2021 年 9 月 18 日
@misakawaque #11
就按照 csdn 那个教程里面的方式,在 vs prompt 里面启动 vscode 就可以了
vscode 官方文档也是这样做的 https://code.visualstudio.com/docs/cpp/config-msvc
就是是通过 vcvars.bat 设置了一些环境变量,大概主要是 INCLUDE LIB LIBPATH,可能把这些变量手动添加一下应该也可以。
还有 cpp_properties.json 只是 IntelliSense 的配置,对编译和链接并没有作用
© 2026 V2EX · 44ms · 3.9.8.5