关于VSCode的三个配置文件

关于VSCode的三个配置文件

若要使用VSCode来开发C++程序,则应该了解以下三种配置文件,分别为:

  • tasks.json:编译器相关的配置文件。比如,设置编译指令。

    注:对于复杂的编译任务(涉及多个源文件的编译),不如直接编写Makefile文件来的方便。

  • launch.json:调试器相关的配置文件。比如,调试器的路径、编译生成的可执行文件路径。

    注:若源文件需要调试,编译生成可执行文件时必须加上-g选项,否则断点无法生效。

  • c_cpp_properties.json:编译器路径和智能代码提示相关的配置文件。

1.tasks.json

1.1.创建方式

菜单栏选择 " Terminal/Configure Tasks"。

关于VSCode的三个配置文件_第1张图片

1.2.配置文件

若要支持C++高版本的编译,比如C++17,可以在参数列表args中添加一行-std=c++17。当然,前提是编译器支持。

注:若编译器支持C++17,且在参数列表args中添加一行-std=c++17,然后打印__cplusplus,结果就会变成201703

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",  // 必须与launch.json中的"preLaunchTask"一致
            "type": "shell",   // 可以选择shell或者process
            "command": "g++",  // 运行的命令
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/build/${fileBasenameNoExtension}.exe"
            ],
            // 将该task添加到build组,可以使用Ctrl+Shift+B快捷键来找到编译命令,命令名称就是"label"
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

可以观察tasks.json中的commandargs这两项,翻译过来其实就是如下指令:

g++ -g ${file} -o ${fileDirname}/build/${fileBasenameNoExtension}.exe

以上指令中,${file}等都是VScode设置的变量,可以参考官方文档或这里。这里简单介绍一下这些变量的含义:

  • ${file}:当前正在编辑的文件名,包括绝对路径、文件名以及后缀;
  • ${fileDirname}:当前打开的文件所在的绝对路径,不包括文件名;
  • ${fileBasenameNoExtension}:当前打开的文件的文件名,不包括路径和后缀名。

比如,当前打开的文件路径为D:/test/hello.cpp,那么这三个变量分别为

  • ${file}D:/test/hello.cpp
  • ${fileDirname}D:/test
  • ${fileBasenameNoExtension}hello

2.launch.json

2.1.创建方式

创建方式如下图所示。

关于VSCode的三个配置文件_第2张图片

关于VSCode的三个配置文件_第3张图片

选择GDB作为调试器,然后就会生成一个配置为空的launch.json的文件。在"configurations"中输入gdb可以自动生成默认配置。一般,修改默认配置中的"program"和"miDebuggerPath"即可完成绝大部分的设置。

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": []
}

2.2.配置文件

该配置文件中主要需要配置如下选项:

  • “program”:可执行文件的路径
  • “miDebuggerPath”:调试器的路径

在configurations中输入gdb可以自动生成默认配置。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\Software\\TDM-GCC-64\\bin\\gdb64.exe",  // 调试器路径
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description":  "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
        
    ]
}

3.c_cpp_properties.json

3.1.创建方式

可以使用快捷键Ctrl+Shift+P,输入C/C++:Edit Configuration。

3.2.配置文件

该配置文件中主要需要配置如下选项:

  • “includePath”:指定了头文件的搜索路径。"/usr/local/include"是我手动添加的路径,里面存放了boost库的头文件。只有正常添加了搜索路径,Vscode才能正确找到它们。
  • “compilerPath”:这个是编译器的路径。
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/local/include"			// boost头文件
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}
cc",
            "cStandard": "c11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

你可能感兴趣的:(vscode,ide,编辑器)