在VS Code中配置C/C++

之前因为学了一点html,所以下了一个VS Code来写html代码。

今天要写C++的代码,以前都是用VS写的。但是突然想了一下既然都装了VS Code,为啥不配置一下。配置好了后以后写C/C++代码也不用打开繁重的VS了。而且VS Code还能加很多插件。

说干就干,上网找了资料,终于配置好了。还是有蛮多坑的,主要是因为网上的教程大部分版本比较老了。所以我来写个教程,方便别人和以后自己在别的电脑上配置。我总结出以下几步:

1. 下载MinGW-w64并配置系统变量

  • MinGW是是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。

  • 但是MinGW的很早就停止维护了,版本很老了。

  • MinGW-w64相当于升级版的MinGW,是一个开源项目,不断在更新维护着。

  • 下载链接,划到最下面,选择“MinGW-W64 GCC-8.1.0”下的“x86_64-win32-seh”进行下载。

  • 下载好后,解压到自己想要的位置。然后将其中的bin路径配置到系统变量中。

  • 打开cmd,输入gcc --version和gdb --version,弹出版本信息就说明这一步完成了。

2. 下载插件C/C++,Code Runner

  • 在VS Code中下载即可。

3. 配置文件

  • 新建一个项目文件夹,在下面建立一个.vscode文件夹,下面建立三个文件,launch.json,tasks.json,c_cpp_properties.json,然后依次把我的代码复制进去。注意代码中的“(改为自己的路径)”

  • lauch.json

{
  "version": "0.2.0",
  "configurations": [
  	{
  		"name": "C++ Launch (GDB)",                
  		"type": "cppdbg",                         
  		"request": "launch",                        
  		"targetArchitecture": "x86",                
  		"program": "${workspaceRoot}\\${fileBasenameNoExtension}.exe",                 
  		"miDebuggerPath":"D:\\app\\mingw64\\bin\\gdb.exe",  (改为自己的路径)
  		"args": [],     
  		"stopAtEntry": false,                  
  		"cwd": "${workspaceRoot}",                  
  		"externalConsole": true,                  
  		"preLaunchTask": "D:/app/mingw64/bin/g++.exe"  (改为自己的路径)          
  		}
  ]
}
  • tasks.json
{
    "version": "2.0.0",
    "command": "D:/app/mingw64/bin/g++.exe",  (改为自己的路径)
    "args": ["-g","-std=c++11","${file}","-o","${workspaceRoot}\\${fileBasenameNoExtension}.exe"],
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    },
    "tasks": [
        {
            "label": "D:/app/mingw64/bin/g++.exe",  (改为自己的路径)
            "command": "D:/app/mingw64/bin/g++.exe",  (改为自己的路径)
            "args": [
                "-g",
                "-std=c++11",
                "${file}",
                "-o",
                "${workspaceRoot}\\${fileBasenameNoExtension}.exe"
            ],
            "problemMatcher": {
                "owner": "cpp",
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            },
            "group": {
                "_id": "build",
                "isDefault": false
            }
        }
    ]
}
  • c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceRoot}",
                "D:/app/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",  (改为自己的路径)
                "D:/app/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",  (改为自己的路径)
                "D:/app/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",  (改为自己的路径)
                "D:/app/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/",  (改为自己的路径)
                "D:/app/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include//c++/tr1",  (改为自己的路径)
                "D:/app/mingw64/x86_64-w64-mingw32/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "__GNUC__=6",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "intelliSenseMode": "msvc-x64",
            "browse": {
                "path": [
                    "${workspaceRoot}",
                    "D:/app/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",  (改为自己的路径)
                    "D:/app/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",  (改为自己的路径)
                    "D:/app/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",  (改为自己的路径)
                    "D:/app/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/",  (改为自己的路径)
                    "D:/app/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include//c++/tr1",  (改为自己的路径)
                    "D:/app/mingw64/x86_64-w64-mingw32/include"  (改为自己的路径)
                ]
            },
            "compilerPath": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\VC\\Tools\\MSVC\\14.36.32532\\bin\\Hostx64\\x64\\cl.exe",
            "cStandard": "c17",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}
  • 在项目文件夹中新建cpp文件,随便写一个程序。然后F5调试。

  • 如果能输出正确结果就没问题。如果不能,比如std或者cout报错的话,就打开设置,在"C/C++"中找到C_Cpp:intelli Sense Engine,将默认的“Default”改为“Tag Parser”。

  • 此时按F5就可以正常实现调试功能了。

  • 其实如果你不用调试的话,直接Ctrl + F5用Code Runner跑代码就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章