欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu18.04 + VSCode + CMake

程序员文章站 2024-02-22 15:07:34
...

Ubuntu18.04 + VSCode + CMake

  • VSCode安装不必多说
  • VSCode安装完成后,在扩展中搜索安装以下扩展插件
    • C/C++
    • C/C++ Compile Run
    • CMake
    • Cmake Tools
  • 在项目中新建.vsocde文件夹,在文件夹中加入launch.json、task.json、c_cpp_properties.json三个配置文件
  • launch.json 按F5调试的时候会执行这个配置文件,该配置文件的作用是运行编译生成的可执行文件,所以按照流程我们首先要编译生成可执行文件,编译生成可执行文件的操作由task.json完成,所以我们要在launch.json中要指明task.json中的任务名称,让其先执task.json编译生成可执行文件,然后再执行launch.json运行编译生成的可执行文件。
	{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
            "type": "cppdbg", // 配置类型,这里只能为cppdbg
            "request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
            "program": "${workspaceFolder}/build/${fileBasenameNoExtension}", // 将要进行调试的程序的路径
            "args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
            "stopAtEntry": false, // 设为true时程序将暂停在程序入口处,我一般设置为true
            "cwd": "${workspaceFolder}/build", // 调试程序时的工作目录
            "environment": [], 
            "externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台,但是最新版cpptools有BUG
            "MIMode": "gdb", // 指定连接的调试器,可以为gdb或lldb。但目前lldb在windows下没有预编译好的版本。
            "setupCommands": [ // 用处未知,模板如此
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": false
                }
            ],
            "preLaunchTask": "build",// 这个地方很关键,指明task.json中的任务名称
        }
    ]
}
  • task.json 见名知意,执行一些任务的配置文件
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",//任务名称,launch.json会调用
            "type": "shell",
            "command": "mkdir build; cd ./build; cmake ../; make",//shell命令 利用CMakeLists.txt编译程序
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}
  • c_cpp_properties.json 主要用于在代码编写过程中检索头文件,没有该配置文件不影响编译运行,但是在代码中会提示找不到头文件什么的。
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [// 头文件路径
                "${workspaceFolder}/**",
                "/usr/include/**",
                "/usr/local/opencv4.2/include/opencv4/**",// opencv
                "/usr/local/darknet/include/**",// darknet
                "/usr/local/seetaface6/include/**",// seetaface6
                "/usr/local/cuda-10.0/include/**"// cuda
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",// 编译器路径
            "cStandard": "c11",
            "cppStandard": "c++14",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}
  • 目录结构大致如下
    ProjetcName
    ├── build
    ├── CMakeLists.txt
    ├── test.cpp
    └── .vscode
    ├── c_cpp_properties.json
    ├── launch.json
    └── tasks.json