Linux Mint下使用vscode编译C++代码

Linux Mint下使用vscode编译C++代码

vscode

首先要说明vscode不是IDE,因此本身没有所谓的一键配置、一键编译/运行、大量可视化项目操作选项等功能,实际上是一个拥有丰富插件且可定制化极高的文本编辑器。当我们创建完C++文件后按照在IDE(VS2022等)思路下会下意识的使用快捷键一键编译运行,这时vscode提示你要提供launch.json和tasks.json,这两个文件就是vscode编译C++代码时所要用到的配置文件。当然如果你只是将vscode当作一个文本编辑器,并依然使用终端命令来编译、调试与运行,也是可以的。

tasks.json

{
    //一个简单的tasks.json示例
    "version": "2.0.0",
    "tasks": [
        {
            "label": "C/C++: g++ build active file", // 任务名称
            "type": "cppbuild", // 任务类型
            "command": "/usr/bin/g++", // 执行的编译命令,如果编译器加入了环境变量可直接g++
            "args": [ // 命令参数
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": {
                "kind": "build", // 任务分组类型
                "isDefault": true // 是否为默认任务
            },
            "problemMatcher": [
                "$gcc"
            ], // 错误匹配器
            "detail": "Generated by VS Code." // 任务描述
        }
    ]
}

值得一提的是vscode默认是不包含tasks.json的,如果直接编译运行的话仍然提示要提供launch.json

launch.json

{
  //一个简单的launch.json
  "configurations": [
    {
      "name": "(gdb) 启动",
      "type": "cppdbg",     //指定的调试器类型
      "request": "launch",  //调试运行
      "preLaunchTask": "C/C++: g++ build active file", //如果要求先生成文件再运行时,需要加上这个参数,参数值要和tasks.json中的"label"一致
      "program": "${workspaceFolder}/${fileBasenameNoExtension}",   //运行的文件名也要与生成的文件名一致
      "args": [],
      "stopAtEntry": false,     //为true表示在运行的第一行代码处停止,为false表示在断点处停止
      "cwd": "${fileDirname}",  //工作目录
      "environment": [],        //设置调试的环境变量
      "externalConsole": false, //使用外置终端,还是vscode内部终端
      "MIMode": "gdb",          //指定的调试器,如果环境变量没有调试器的目录,需要加上参数"miDebuggerPath",值为调试器的目录
      "setupCommands": [        //调试器内部命令
        {
          "description": "为 gdb 启用整齐打印",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        },
        {
          "description": "将反汇编风格设置为 Intel",
          "text": "-gdb-set disassembly-flavor intel",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

当两个配置文件都编写完毕后,将其放入.vscode文件夹中,然后回到C++代码中即可正常编译、调试与运行。关于tasks.json和tasks.json其他高级命令与用法可参考微软vscode官方文档。

posted @ 2025-12-09 21:07  Reimual  阅读(2)  评论(0)    收藏  举报