·【Linux下C++开发】第一篇·Linux系统基本操作
·【Linux下C++开发】第二篇·开发环境搭建及gcc编译器
·【Linux下C++开发】第三篇·使用VSCode进行C++开发
·【Linux下C++开发】第四篇·CMake
在vscode中使用c++和cmake编写文件工程,需要安装以下几个插件:
安装步骤如下图:
在搜索栏中进行搜索即可逐个安装
安装完Chinese后,可以使用快捷键Ctrl+Shift+p,然后输入Language,选择Configure Display Language然后选择Chinese,即可完成汉化。
点击左侧调试,然后点击创建launch.json文件,选择第一项G++/GDB,然后选择第一项g++,然后在弹出的框中之间选择中间的退出按钮即可。
然后会弹出以下界面:
launch.json的修改主要有两项:
tasks.json的修改也很明了,将下面这段代码复制代替源代码:
{
{
"version": "2.0.0", //文件版本
"options": {
"cwd": "${fileDirname}/build"//编译的工作目录,也就是build目录
},
"tasks": [
{
"type": "shell",
"label": "cmake",
"command": "cmake",
"args": [
". .",
]
},
{
"label": "make",
"group": {
"kind": "build",
"isDefault": true
},
"command": "make",
"args": [
]
},
{
"type": "Build",
"dependsOrder": "sequence",
"dependsOn": [
"cmake",
"make"
]
}
]
}
代码的意思是,创建了三个任务(cmake、make、Build),Build任务是需要在launch.json中的"preLaunchTask"中设置的预先执行的,它的作用主要是设置另外两个任务的执行顺序,先执行cmake,再执行make,这和我们使用命令行编译cmake时是一样的!
然后cmake任务的工作参数设置为…,这等效于编译时的“cmake …”,在上层文件夹生成Makefile;make任务的参数不设置,也就是相当于“make”,这样可以在使用调试时(F5)自动帮我们完成编译的步骤。
修改完的launch.json:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++ - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/build/testcmake",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "Build",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
Ctrl + p | 转到文件 |
---|---|
Ctrl + Shift + p | 打开命令板 |
Ctrl + ` | 打开终端 |
Ctrl + s | 保存文件 |
Ctrl + z | 撤销 |
Alt+up/down | 当前行上/下移 |
F2 | 变量统一命名 |
$ cd test
$ ls
$ code . #在当前文件夹下打开vscode
新建一个.cpp文件,一定要加上后缀名,然后编写一段简单的代码
#include
using namespace std;
int main()
{
cout << "Hello SLAM!" << endl;
return 0;
}
先使用快捷键Ctrl + s保存修改,然后快捷键Ctrl+`打开内嵌终端,使用g++编译代码生成可执行文件,然后输入./test运行
也可以点击右上角的三角号,直接运行代码,这时会在OUTPUT输出端显示
在平时编写工程时常用的编写头文件和相应的函数文件,然后在主函数中调用这些函数,这里我们就实现在include文件夹中编写libhello.h头文件,在src文件夹中编写libhello.cpp的函数,然后在test的主函数中调用。
#ifndef _LIBHELLO_H_
#define _LIBHELLO_H_
#include
using namespace std;
void printHello();
#endif // !_LIBHELLO_H_
libhello.cpp:
#include "libhello.h"
void printHello()
{
cout << "Hello SLAM" << endl;
}
test.cpp:
#include "libhello.h"
using namespace std;
int main(int argc, char **argv)
{
// cout << "Hello SLAM!" << endl;
printHello();
return 0;
}
在终端中执行以下语句,即可编译生成可执行文件:
$ g++ test.cpp src/libhello.cpp -Iinclude -o test2
$ ./test2 #运行可执行文件
进行launch.json和tasks.json文件的配置后,不需要cmake编译,直接点击调试键即可进行自动化编译,并进入调试界面,可以在行号左侧添加断点,进行各种各样的调试。
这时上方显示了一个调试栏,可以进行单步调试、进入函数等调试操作;左侧也有变量窗口和监视器,都可以进行各种调试工作。