V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
misakawaque
V2EX  ›  问与答

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

  •  
  •   misakawaque · 2021-09-17 09:18:20 +08:00 · 1975 次点击
    这是一个创建于 1168 天前的主题,其中的信息可能已经有所发展或是发生改变。

    配置代码如下

    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-09-17 09:55:24 +08:00

    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-09-17 09:37:04 +08:00 via Android
    你确定 task 的内容是对的?为什么跟 properities 一样?
    misakawaque
        2
    misakawaque  
    OP
       2021-09-17 09:55:42 +08:00
    @ysc3839 啊是的,贴错了
    ysc3839
        3
    ysc3839  
       2021-09-17 10:31:53 +08:00
    task 里面的 command 写完整路径试试?
    misakawaque
        4
    misakawaque  
    OP
       2021-09-17 10:47:15 +08:00
    @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-09-17 10:49:31 +08:00
    @misakawaque
    不过这些文件都是插件自动配置的
    修改的地方在于编译器是 x86/x64/win32 以及在其中加入了`a1.cpp`和`a1.exe`
    ysc3839
        6
    ysc3839  
       2021-09-17 11:26:37 +08:00
    @misakawaque 看上去修改后并没有生效,我也不知道是什么问题了……
    kokutou
        7
    kokutou  
       2021-09-17 12:20:30 +08:00 via Android
    改改编码,搞清楚那堆乱码报错信息说的是啥
    ysc3839
        8
    ysc3839  
       2021-09-17 12:32:35 +08:00
    @kokutou 盲猜是
    不是内部或外部命令,也不是可运行的程序
    或批处理文件。
    mangohaoming
        9
    mangohaoming  
       2021-09-17 13:40:01 +08:00
    一键安装 C/C++ extension pack 插件解君愁,当然前提是得使用 cmake
    Vinty
        10
    Vinty  
       2021-09-17 14:25:22 +08:00
    估计是标准库的 include 或者 library 的路径没有
    用 cl 命令行,要在 msvc 的 prompt 环境里面启动 vscode
    misakawaque
        11
    misakawaque  
    OP
       2021-09-18 10:28:39 +08:00
    @Vinty 只能开着那个黑框来用么
    Vinty
        12
    Vinty  
       2021-09-18 11:12:10 +08:00
    @misakawaque #11
    就按照 csdn 那个教程里面的方式,在 vs prompt 里面启动 vscode 就可以了
    vscode 官方文档也是这样做的 https://code.visualstudio.com/docs/cpp/config-msvc
    就是是通过 vcvars.bat 设置了一些环境变量,大概主要是 INCLUDE LIB LIBPATH,可能把这些变量手动添加一下应该也可以。
    还有 cpp_properties.json 只是 IntelliSense 的配置,对编译和链接并没有作用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5548 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 08:52 · PVG 16:52 · LAX 00:52 · JFK 03:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.