vscode配置 c++ 开发环境(二):调试和头文件设置

阅读

前言

上次在vscode配置 c++ 开发环境(一):智能提示文章中介绍了如何在 vscode 中配置 c++语言的智能提示,时间又过了很久,vscode 用的也越来越得心应手,今天终于有机会更新这个系列的第二篇文章,讲讲如何配置includePath来避免不愉快的波浪线和怎么用 vscode 对 cpp 程序进行调试。

头文件目录配置

在默认情况下,就算是已经将 cpp 开发相关的插件装好,用 VScode 打开一个 cpp 文件的时候,通常还会看到令人不悦的波浪线。

刚开始的时候我也非常的头疼这个问题,后来在vscode 官方博客的文章中找到了解决方案。

首先,在使用习惯上,要用 vscode 打开源代码所在的文件夹而不是打开单个文件,比如所,我有个Josephus.cpp源文件在cppcode文件夹下,那么就要在终端上输入code cppcode 用 vscode 打开这个文件夹,再对那个源代码文件进行编辑和处理,而避免直接code Josephus.cpp打开单个文件。(下面的相关配置都是基于这个使用习惯的基础之上的)

然后,在文件夹下新建.vscode目录(如果该目录已经存在,则可以略过这一步)。

.vscode文件夹下,新建c_cpp_properties.jsonjson 配置文件,在文件中粘贴以下代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "/usr/include",
                "/usr/local/include",
                "/usr/include/c++/4.2.1"
                
            ],
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": "",
                "path": [
                    "/usr/include",
                    "/usr/local/include",
                    "${workspaceRoot}"
                ]
            },
            "intelliSenseMode": "clang-x64",
            "macFrameworkPath": [
                "/System/Library/Frameworks",
                "/Library/Frameworks"
            ]
        }
    ],   
    "version": 3
}

在这个配置文件中,includePath字段是指定 VScode 搜索头文件的目录,如果目录中不存在源代码里引用的头文件,则会有波浪线提示。

所以,将用到的头文件所在的位置都添加到该字段中,就可以解决“波浪线”问题了。

调试设置

在 Windows 上面用 VS 进行 C++开发的时候,最吸引人的一个功能是完善的调试功能,类似的功能在 VScode 上也可以实现。

首先,在.vscode文件夹下新建 launch.jsontasks.json两个配置文件,其中,launch.json文件是配置调试信息,tasks.json是用于配置编译信息。

tasks.json文件下,粘贴以下代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
    "version": "0.1.0",
    "command": "clang++",
    "args": ["-g","${file}","-o","${file}.out"],    // 编译命令参数
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}

上述代码中,command字段是编译程序(编译命令),根据个人喜好可以填g++或 clang++(编译 C++),如果想编译 c,也可以填 gcc 或 clang。 args字段是编译时添加的指令,${file}.out中${file}指的是当前编辑文件的文件名。(如果是在 Windows 下面配置,需要写成${file}.exe

launch.json文件下,粘贴以下代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(lldb) Launch",
                "type": "cppdbg",
                "request": "launch",
                "program": "${file}.out",
                "args": [],
                "stopAtEntry": false,
                "cwd": "${workspaceRoot}",
                "environment": [],
                "externalConsole": true,
                "MIMode": "lldb"
            }
        ]
}

"program": "${file}.out"字段表示调试的目标程序。

两个文件都配置好之后,打开要调试的 cpp 文件,首先选择“任务”->“运行任务…”,弹出的窗口中选择clang++,这一步是编译程序生成.out 文件的过程。

运行完毕后,选择“调试”->”启动调试“或按 F5快捷键,启动调试。如果调试界面能正常打开,表示配置没有问题,进入调试过程。

参考网站

如何在VSCode内编译运行C++

使用 Hugo 构建
主题 StackJimmy 设计