[C/C++] Visual Stdio Code中多线程多源码文件编译、运行和调试

发布时间 2023-06-24 10:38:04作者: 小贼的自由

搞了很久,记录一下:

一. 环境

  • OS:Ubuntu 20.04
  • VS Code:1.77.0
  • g++:g++ (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0

二. 配置文件

下面两个文件先不要手动创建,下面第三章会讲到:

  • task.json:编译程序的配置文件;
  • launch.json:运行程序的配置文件.

三. 编译&运行

1. 打开main函数所在的cpp文件,点击右上角的运行按钮的下拉选项,并选择“Run C/C++ File”:

2. 选择第一个选项,VS Code会自动生成默认 task.json文件 并运行。由于默认task配置文件不适用于我们的多线程多文件项目,因此会报错

3. 关闭错误弹窗,修改 task.json 文件如下,其中红框是修改的地方:

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-fdiagnostics-color=always",
                "-g",                   // 开启调试选项
                // "${file}",           // 单文件
                "${fileDirname}/*.cpp", // 多文件源码需要添加所有的 源码文件 才能通过编译(这里是同目录下的所有cpp文件)
                "-pthread",             // 多线程编译(代码中用到了多线程)
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

4. 回到main函数所在的cpp文件,点击运行图标(三角形),就能正常编译运行了:

四. 添加运行参数

如果需要添加程序的运行参数,例如我们本例中的项目需要指定一个端口号,那么可以通过在配置文件 launch.json 中添加:

1. 按照下面操作,VS Code将会自动生成 launch.json文件 ,

 2. 将需要的参数添加到里面就好了:

 五. 调试

完成了上面的步骤,调试就变得很简单了,和单源码文件工程调试一样,可在任意地方(任意文件)打上断点:

 六. 致谢

感谢CCTV~