详解Ubuntu18.04配置VSCode+CMake的C++开发环境
⽬录
⼀、VS Code 的C++开发环境
1、建⽴⼯程
2、更改配置⽂件(launch.json)
3、更改编译任务(task.json)
4、断点调试
⼆、CMake调试C++ ⼯程
1、创建⽂件
2、开始调试
3、配置 C++ IntelliSense
三、实例分析
参考:
⾸先,介绍⾃⼰电脑:Ubuntu18.04、VS Code 1.46版
本⽂⽬的:为VS Code配置好C++ 开发环境,以及VS Code +CMake的配置
对于C++ ⼯程,有四个必要的json配置⽂件,先ctrl+shift+p打开输⼊指令分别是:
c_cpp_properties.json:配置项⽬结构,⾃动⽣成和更新,输⼊C/C++:Edit configuration
task.json: 构建和编译运⾏项⽬,输⼊Task:Configure Task,模板,Others
launch.json: 调试,读取可执⾏⽂件
setting.json: 输⼊setting
针对两种情况分别进⾏介绍,最后根据⼗四讲中使⽤Eigen进⾏实验。
⼀、VS Code 的C++开发环境
rotate属性
摘要:
1.新建C/C++⼯程,VScode以⽂件夹为管理⼯程的⽅式,因此需要建⽴⼀个⽂件夹来保存⼯程。
2.配置launch.json⽂件,读取可执⾏⽂件。需要进⾏修改地⽅的是指定运⾏的⽂件,其次我们还可以在⾥⾯添加build任务,⽤于调试。
3.配置tasks.json⽂件,这个⽂件⽤来⽅便⽤户⾃定义任务,我们可以通过这个⽂件来添加g++/gcc或者是make命令,⽅便我们编译程序。
4.之后就可以进⾏基础的C/C++开发与调试了。
1、建⽴⼯程
新建⼀个⼯作区⽂件夹,然后在VScode中打开这个⽂件夹。VScode调试必须在⼯作区⽂件夹下,单独打开⼀个⽂件调试会报错。VScode不⽀持中⽂路径,⽂件夹名称不能有空格。
#include <iostream>
using namespace std;
int main(){
cout<<"Hello World"<<endl;
getchar();
return 0;
}
2、更改配置⽂件(launch.json)
launch.json⽬的:读取执⾏out⽂件
点击左侧的Debug按钮,选择添加配置(Add
configuration),然后选择C++(GDB/LLDB),然后点击默认⽣成,将⾃动⽣成launch.json⽂件,具体操作如下:
{
// 使⽤ IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: go.microsoft/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",// 配置名称
"type": "cppdbg",// 配置类型
"request": "launch",// 请求配置类型,launch或者attach
"program": "输⼊程序名称,例如 ${workspaceFolder}/a.out",// 进⾏调试程序的路径,程序⽣成⽂件.out "args": [],// 传递给程序的命令⾏参数,⼀般为空
"stopAtEntry": false,// 调试器是否在⽬标的⼊⼝点停⽌,
"cwd": "${workspaceFolder}",// 项⽬⽬录
"environment": [],
"externalConsole": false,// 调试时是否显⽰控制台窗⼝,⼀般为true显⽰控制台
"MIMode": "gdb",// 指定连接的调试器
"setupCommands": [
{
"description": "为 gdb 启⽤整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
更改:
将program内容改为调试时运⾏的程序。
"program": "输⼊程序名称,例如 ${workspaceFolder}/a.out"
改为
"program": "${workspaceFolder}/${fileBasenameNoExtension}.out"
新增,preLaunchTask 使得每次调试之前会⾃动进⾏build:
"preLaunchTask": "build",
最终版本为:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: go.microsoft/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"preLaunchTask": "build",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
3、更改编译任务(task.json)
task.json:定义编译⽅法,转为计算机可识别的语⾔,⽣成out⽂件。
快捷键ctrl+shift+p打开命令⾏,输⼊:Task:Configure Task使⽤模版创建Tasks.json⽂件→
Others:
{
// See go.microsoft/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "echo",// 任务名
"type": "shell",
"command": "echo Hello" // 指令
}
]
}
更改为:
{
// See go.microsoft/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "g++",
"args": ["-g", "${file}", "-std=c++11", "-o", "${fileBasenameNoExtension}.out"]
}
]
}
4、断点调试
以上⼯作完成后即可编译运⾏C/C++程序。不过在调试之前最好先CTRL+SHIFT+B编译⼀下,选择执⾏我们的build任务,build成功后,点击开始调试。
⼆、CMake调试C++ ⼯程
1、创建⽂件
在⽂件夹内创建⽂件
~$ touch main.cpp
~$
<
cmake_minimum_required(VERSION 2.6)
# ⼯程vscode_cmake
project(vscode_cmake)
#dubug 模式
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
set(SRC_LIST main.cpp)
# 可执⾏程序 result
add_executable(result ${SRC_LIST})
main.cpp
#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 & "<<endl;
}
return 0;
}
其中,需要在 ⾥加
set (CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -g”)
开启debug 不然断点调试是⽆效的
2、开始调试
⾸先要build⽣成可执⾏⽂件result,有了可执⾏⽂件才能进⾏debug操作,然后再设置断点,按下F5,进⾏调试。
在图中最左侧第四个⼩蜘蛛形状的图标(调试),点击左上⽅的⼩齿轮,添加配置(C++GDB/LLDB),修改launch.json⽂件为:{
// 使⽤ IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: go.microsoft/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/result",// 更改
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启⽤整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
更改了
"program": "${workspaceFolder}/build/result",// 更改
是为了⽣成的可执⾏⽂件result到build⽂件夹内。
之后按下最下⽅的Build按键,⽣成可执⾏⽂件。
接下来设置断点,按下F5,进⾏调试
3、配置 C++ IntelliSense
Ctrl+shift+p打开命令选项,选择C/C++:Edit configuration ,⾃动⽣成 c_cpp_properties.json配置⽂件。
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [],
"compilerPath": "/usr/bin/clang",
"cStandard": "c11",
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论