vscode中找不到ros中的一些头文件
一个小问题
在VSCode中,我们通常使用ROS的C++开发,但是ROS的C++开发需要使用ROS的API,但是ROS的API在VSCode中找不到,头文件也找不到,但是编译是可以成功的,说明只是vscode的配置问题。
最最重要的是,vscode找不到头文件,在写代码的时候就没有代码提示,就无法知道变量下还有哪些值,这就导致根本就无法写代码。
例如在头文件中找不到#include <sensor_msgs/JointState.h>
头文件,解决方法如下:
经过查找,JointState.h
位于/opt/ros/noetic/include/sensor_msgs/JointState.h
在c_cpp_properties.json
中添加如下配置:
1 | "includePath": [ |
接着source devel/setup.bash
,就会发现头文件下的波浪线消失了,也可以正常打开JointState.h文件。
PS:在一开始的解决方案里,在CMakeLists.txt中添加了include_directories(${Boost_INCLUDE_DIR} ${catkin_INCLUDE_DIRS} /opt/ros/noetic/include)
,但是cmake是编译的时候才去查找头文件,所以还是需要添加到c_cpp_properties.json
中,可以不用管CMakeLists.txt
.