vscode IntelliSense找不到包的解决方法

问题背景

在用vscode写ros2项目时,势必会有引用rclcpp库这一步。一般只需在CMakeLists.txt中写好引用rclcpp的相关代码即可顺利编译:

1
2
3
4
5
...

find_package(rclcpp REQUIRED)
target_include_directories(main PUBLIC ${rclcpp_INCLUDE_DIRS})
target_link_libraries(main ${rclcpp_LIBRARIES})

但这也仅仅是能编译成功,我们还想要vscode的C/C++插件IntelliSense智能提示能识别我们引入的库,提高我们代码效率。而常常在这里vscode不能很顺利地识别,需要我们手动地配置。

问题阐述

很常见的情况是:

1
2
3
#include "rclcpp/rclcpp.hpp"  // vsc在这一行报错

...

并且智能提示识别不了rclcpp命名空间下的任何函数……

下为实景图:

解决方法

  1. 配置C/C++扩展包:Ctrl+Shift+P打开命令面板 > 找到C/C++: Edit Configurations(UI)

    IncludePath栏中添加你的包的路径(我这里是ros2下的rclcpp,包含文件位于/opt/ros/humble/include/rclcpp,但为了省事我把整个include文件夹都包括了):

  2. 删除.vscode/c_cpp_properties.jsonconfigurationProvider属性。

    注意删完重启vscode!这一步挺关键的。


vscode IntelliSense找不到包的解决方法
https://becks723.github.io/2025/06/10/vscode-IntelliSense找不到包的解决方法/
作者
Becks723
发布于
2025年6月10日
许可协议