参考:https://blog.csdn.net/qq_42688495/article/details/107750466
bug1: 配置c_cpp_properties.json
{
"configurations": [
{
"browse": {
"databaseFilename": "${workspaceFolder}/.vscode/browse.vc.db",
"limitSymbolsToIncludedHeaders": false
},
"includePath": [
"/opt/ros/melodic/include/**",
// "/home/wuhd/catkin_ws/src/dcl_driver/include/**",
// "/home/wuhd/ws/src/learning/include/**",
// "/home/wuhd/catkin_ws/src/multi_lidar_calibration/include/**",
"/usr/include/**"
],
"name": "ROS",
"intelliSenseMode": "gcc-x64",
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu11",
"cppStandard": "c++14"
}
],
"version": 4
}
bug2:找不到ros/ros.h和std_msgs/String.h
我配置的时候,没有在build文件夹下生成compile_commands.json文件,因为可以找到ros/ros.h和std_msgs/String.h
bug3:按住Fn+F5启动调试,就会生成launch.json
如果无法生成,手动在项目目录下创建.vscode文件夹,以及.vscode/launch.json文件
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/devel/lib/cal/cal",// 表示可执行程序所在的路径,其中,${workspaceRoot}表示VScode加载的文件夹的根目录
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "catkin_make"
}
]
}
bug4:按住Fn+F1创建tasks.json文件
随便选择一个,然后修改tasks.json文件内容;
如果无法生成, 手动创建
{
"version": "2.0.0",
"tasks": [
{
"label": "catkin_make", //代表提示的描述性信息
"type": "shell", //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
"command": "catkin_make",//这个是我们需要运行的命令
"args": ["-DCMAKE_EXPORT_COMPILE_COMMANDS=1"],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
"group": {"kind":"build","isDefault":true},
"presentation": {
"reveal": "always"//可选always或者silence,代表是否输出信息
},
"problemMatcher": "$msCompile"
},
]
}
bug5:结果测试时报错
[ERROR] [1656318039.735840529]: [registerPublisher] Failed to contact master at [localhost:11311]. Retrying…
开一个终端运行,运行roscore即可。