1. 重新安装vscode
因为前期在vscode上配置了clangd等插件,当参考网上的相关教程时,无法实现自动补全功能,在电脑上彻底卸载vscode后,重新配置后就能实现自动补全了。
sudo dpkg --purge code # dpkg卸载VSCode
sudo apt-get purge code # apt-get卸载VSCode
sudo apt-get autoremove # 清除残留的配置文件和依赖
rm -rf ~/.config/Code # 删除所有VSCode的相关数据和配置文件
rm -rf ~/.vscode # 删除所有VSCode的相关数据和配置文件
rm -rf ~/.vscode-server # 清除已下载的扩展文件
在vscode官网Download Visual Studio Code下载vscode,使用dpkg命令安装
sudo dpkg -i code_***.deb
我的系统配置如下:
详情 | |
---|---|
系统版本 | Ubuntu 22.04.4 LTS |
ROS2版本 | humble |
vscode版本 | 1.85.2 |
2. 配置vscode
2.1 安装插件
在vscode中安装以下插件
- C/C++
- C/C++ Extension Pack
- C/C++ Themes
- CMake
- CMake Tools
2.2 下载测试代码
使用ros2例程代码的C++ package测试
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone https://github.com/ros2/examples.git
git checkout humble # 切换到humble分支
rm -rf ./examples/rclpy # 删除python package
cd ..
2.3 编译
编译时增加编译参数,生成compile_commands.json
文件
cd ~/ros2_ws
colcon build --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
编译完成后,这将会生成文件~/ros2_ws/build/compile_commands.json
2.4 配置 c_cpp_properties.json
在工作空间下新建文件.vscode/c_cpp_properties.json
,在ROS2工作空间目录下打开vscode
cd ~/ros2_ws
mkdir .vscode
cd .vscode
touch c_cpp_properties.json
code .
文件目录如下:
├── .vscode
│ └── c_cpp_properties.json
├── build/
├── install/
├── log/
└── src
└── examples/
在vscode中打开文件c_cpp_properties.json
,按照以下配置
{
"configurations": [
{
"browse": {
"databaseFilename": "${default}",
"limitSymbolsToIncludedHeaders": false
},
"includePath": [
"/opt/ros/humble/include/**",
"/usr/include/**",
"/usr/local/include/**",
"${workspaceFolder}/**"
],
"compileCommands": "${workspaceFolder}/build/compile_commands.json",
"name": "ROS",
"intelliSenseMode": "gcc-x64",
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu11",
"cppStandard": "c++17"
}
],
"version": 4
}
2.5 (可选)配置代码风格化
确保在电脑中安装了 clang-format
sudo apt-get install clang-format
在vscode中安装插件 Clang-Format ,安装完成后,重启 vscode
创建.vscode/settings.json
文件,输入以下内容
{
"editor.defaultFormatter": "xaver.clang-format",
"editor.formatOnSave": true,
"clang-format.assumeFilename": ".clang-format的完整路径,如${workspaceFolder}/.clang-format",
}
3. 测试
配置完成后,重新打开vscode
3.1 自动补全
可以自动补全相关类的成员函数等
vscode开发ROS2--自动补全
3.2 自动跳转
鼠标停留在要跳转的头文件或者变量上,按下键盘Ctrl,鼠标单击能跳转到对应的定义位置
vscode开发ROS2--自动跳转