整理一下ubuntu环境使用VS Code编译ORB-SLAM3的过程。
一、安装VS Code
前面有整理,指路[学习笔记-VS Code篇]卸载kdevelop,安装VS Code。
二、安装cmake
这个有自己的编译器就行,主要是为了和终端cmake
编译一致。
在终端使用指令即可,可以使用cmake --version
查看是否安装。
三、安装扩展包
在VS Code的左边Extensions
栏进行搜索,建议安装如下扩展包:
C/C++
C++ Intellisense
CMake
CMakeTools
四、编译调试
编译2-4
,调试第5
步。
- 首先在
VS Code
中点击最上方的文件
-打开文件夹
,选择ORB-SLAM3
文件夹打开。 - 创建
c_cpp_properties.json
。ctrl + shift + P
后输入C/C++: Edit configurations
,其中内容可以先保持默认的不做修改。 - 创建
tasks.json
。ctrl + shift + P
后输入Tasks: Configure Tasks
,选择使用模板创建tasks.json
,选择Others
。这里建议修改为如下内容:
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"command": "./build.sh",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
- 编译。
ctrl + shift + P
后输入Tasks: Run Build Task
或者快捷键ctrl + shift + B
,就可以运行build.sh
文件(执行tasks.json
中的command
指令)。修改build.sh
文件中最下面的DCMAKE_BUILD_TYPE
为Debug
,反正没改现在加不了断点。 - 调试。快捷键
Ctrl+Shift+D
,打开一个launch.json
。如果已经在终端编译过Release
版本,只想用VS Code
进行调试,可以直接执行这一步进行调试。这里只需要对program
和args
的参数进行修改就可以:program
是可执行文件的路径和名字,args
是执行程序输入的剩余参数。但要注意把绝对路径都加上。打个比方,直接在终端运行stereo_inertial_euroc
程序的指令是
./Examples/Stereo-Inertial/stereo_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo-Inertial/EuRoC.yaml /home/xxx/dataset/MH04 ./Examples/Stereo-Inertial/EuRoC_TimeStamps/MH04.txt
那么,在launch.json
中就这么写
"program": "/home/xx/ORB_SLAM3/Examples/Stereo-Inertial/stereo_inertial_euroc",
"args": [
"/home/xx/ORB_SLAM3/Vocabulary/ORBvoc.txt",
"/home/xx/ORB_SLAM3/Examples/Stereo-Inertial/EuRoC.yaml",
"/home/xxx/dataset/MH04",
"/home/xx/ORB_SLAM3/Examples/Stereo-Inertial/EuRoC_TimeStamps/MH04.txt"
]
然后,在调试界面点击绿色小三角运行即可。
参考
1.Ubuntu下 VSCODE ORBSLAM2和3 DEBUG调试
2.Ubuntu系统下使用VS Code编译调试C++程序并添加外部库