首先新建一个文件夹作为工作空间
mkdir test
进入工作空间文件夹,在vscode中打开
cd test
code .
创建一个c++文件
#include<iostream>using namespace std;int main(){int a = 2+3;int b = a+3;for(int i = 0; i<10; i++){cout<<"hello vs code & cmake..."<<endl;}return 0;
}
因为要使用cmake编译,所以要创建CMakeLists.txt,加入如下代码
cmake_minimum_required(VERSION 2.6)project(vscode_cmake)add_executable (vscode_cmake ./main.cc)
再创建build.sh文件
vim build.sh
写入以下内容
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
make
注意给build.sh文件赋予权限,否则可能无法运行
chmod +x build.sh && ./build.sh
此时,工作空间文件夹下包含三个文件,main.cc CMakeLists.txt build.sh
在vscode中按ctrl+shift+p,选择Configure Tasks回车,再选择Create tasks,json file from template回车,再选择others,写入如下内容
{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","tasks": [{"label": "vscode_cmake","type": "shell","command": "./build.sh","group": {"kind": "build","isDefault": true}}]
}
ctrl+shift+p,Run Build Tasks,即完成了编译,tasks.json文件就是运行了command里写的build.sh。而build.sh文件就是使用cmake进行了编译,这里注意编译的type要写debug,不要写release,否则后面打不了断点。
ctrl+shift+d, create a launch.json file,debugger选择GDB,删除默认生成的"configurations",点击右下角Add Configuration,修改“program”为cmake编译生成的executable文件的路径,注意要写绝对路径
{// 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","request": "launch","program": "/home/username/test/build/vscode_cmake","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true},{"description": "Set Disassembly Flavor to Intel","text": "-gdb-set disassembly-flavor intel","ignoreFailures": true}]}]
}
在main.cc文件夹中打上断点,就可以调试了。