插件安装

  1. C/C++ IntelliSense
  2. CMake:可进入官网https://cmake.org/download ,下载可以直接安装的版本:下载后直接运行安装。然后在VSCode应用商店中搜索CMake,点击安装按钮安装即可。 单一文件编译的话非必须

安装编译调试环境(MinGW)

     在Windows系统中配置环境变量:将MinGW\bin添加到Path中去;添加后可以在cmd.exe中验证是否可以使用:

在cmd中分别敲gcc --version,g++ --version和gdb --version查看输出(gcc和g++为c和c++编译器,gdb是调试所需),如果命令行提示“XXX”不是内部或外部命令,则没有添加成功。

修改配置文件

此时还无法直接调试.c文件,需要添加两个配置文件:

launch.json配置文件:

调试——添加配置——C/C++:(gdb)launch 生成配置文件

配置文件内容如下:

{
    "version": "0.2.0",
    "configurations": [
    	{
    		"name": "C++ Launch (GDB)",   // 配置名称,将会在启动配置的下拉菜单中显示
    		"type": "cppdbg",             // 配置类型,这里只能为cppdbg
			"request": "launch",          // 请求配置类型,可以为launch(启动)或attach(附加)
			"program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",  // 将要进行调试的程序的路径
			"args": [], 	// 程序调试时传递给程序的命令行参数,一般设为空即可
			"stopAtEntry": false,         // 设为true时程序将暂停在程序入口处,一般设置为false
			"cwd": "${workspaceFolder}",    // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
			"environment": [],   //
			"externalConsole": true,      // 调试时是否显示控制台窗口,一般设置为true显示控制台
			"MIMode": "gdb",
			"miDebuggerPath":"D:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
			"preLaunchTask": "g++",  //调试会话开始前执行的任务,一般为编译程序,C++为g++,C为gcc
			"setupCommands":[
				{
					"description": "Enable pretty-printing for gdb",
					"text": "-enable-pretty-printing",
					"ignoreFailures": true
				}
			]
		}
    ]
}

  注:miDebuggerPath的路径要使用'/'或者'\\',或者直接写成gdb.exe也可以(path已经配置gdb.exe的路径)。

tasks.json配置文件:

保存launch.json以后,然后切换到要调试的文件窗口,比如main.c,然后按F5开始调试,会提示找不到g++任务,此时可以点击“配置任务”添加配置文件:

终端—配置任务—使用模板创建tasks.json文件—选择:“Others 运行任意外部命令的示意”生成配置文件

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "g++", //可以改成gcc,但是要跟lunch中的preLaunchTask一致
            "type": "shell",
            "command": "g++",  //可以改成gcc
            "args": ["-g", "${file}", "-o", "${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": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

 注:(1)该tasks.json用于编译一个文件,可以使用ctrl+shift+b单独编译。

        (2)launch.json包含了编译和调试,即先调用gcc完成编译,然后调用gdb进行调试。

注意:label的名字必须为g++,即与launch.json中的preLaunchTask的值保持一样。

该task.json用于编译一个文件,可以使用ctrl+shift+b单独编译。

launch.json包含了编译和调试,即先调用g++完成编译,然后调用gdb进行调试。

保存task.json,切换到需要调试的文件,再次按F5启动调试,就可以看到调试效果啦。

c_cpp_properties.json配置文件: 

如果相关库头文件找不到,可以添加c_cpp_properties.json配置文件来添加MinGW提供的include路径

Ctrl+Shift+P:搜索c/c++:Edit cnfigurations(JSON),点击生成c_cpp_properties.json配置文件

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "D:\\MinGW\\include\\*",
                "D:\\MinGW\\lib\\gcc\\mingw32\\5.3.0\\include\\*"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "D:\\MinGW\bin\\gdb.exe",
            "cStandard": "c11",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}

完成上述步骤后切换到需要调试的文件,再次按F5启动调试,就可以看到调试效果啦。

CMake工具使用make命令

如果在目录中放置一个CMakeLists.txt

CMAKE_MINIMUM_REQUIRED(VERSION2.6) #cmake最低版本需求,不加入此行会受到警告信息

PROJECT(HELLO) #项目名称  

AUX_SOURCE_DIRECTORY(.SRC_LIST) #把当前目录(.)下所有源代码文件和头文件加入变量SRC_LIST

ADD_EXECUTABLE(hello${SRC_LIST}) #生成应用程序 hello (在windows下会自动生成hello.exe)

在VSCode中打开这个目录,会自动创建CMake相关的文件和目录,这实际上就是前面安装的两个插件在帮助我们做一些自动化工作。

要使用此功能需要先做如下准备工作:

将MinGW\bin\mingw32-make.exe这个文件复制一份,并改名为make.exe,以方便后续CMake工具使用make命令。

完成后就可以打开工程,在命令行窗口进行构建:

创建build文件夹并进入

在命令行输入: cmake .. -G "MinGW Makefiles" -D "CMAKE_CXX_FLAGS=-std=gnu++11 -Wno-deprecated-declarations" 来生成makefile,然后再make生成可执行文件。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐