本人遇到的情况, 使用 ROS 的过程中, 发现 #include <pcl/point_types.h> 不被 VScode 识别, 在 AI 的帮助下解决了该问题, 现总结如下:
1. 查看是否有相应的文件
Linux 下, point_types.h 的存储路径一般为: /usr/include/pcl-1.x
(我的路径是 /usr/include/pcl-1.12
), 在该目录下查找是否存在该文件:
shell
find . -type f -name <文件名称>
我查找到确实是存在该文件的, 所以目录方面没有问题
2. 查看 VScode 的 c_cpp_properties.json
在 VScode 用 c_cpp_properties.json 来指定头文件路径; 一般情况下需要配置该文件, 而我遇到的 #include <pcl/point_types.h> 找不到的问题, 需要在该文件中写入:
json
"includePath": [
"xxx",
"/usr/include/pcl-1.12"
]
一般情况下, 到这一步就可能解决问题, 如何没有解决, 可继续下面操作
Coution: 该种路径有时候可能没法识别, 需要写成 "xxx/**" 的形式, 例如: "/opt/ros/humble/include/**"
3. 查看输出日志
返回 VScode 界面, 按下 [Ctrl + Shift + P] 并输入: C/C++: Log Diagnostics
, 选中后查看日志中是否有头文件路径. 如果没有, 返回 2.
4. 强制清除 IntelliSense 缓存
如果到此还是无法解决问题, 只能清理 IntelliSense 缓存; 操作之前, 要关闭 VScode, 具体代码如下:
shell
rm -rf ~/.cache/vscode-cpptools
之后重启 VScode, 即可解决问题;
如果还未解决, 可以使用以下方式: (以下情况并未试过, 请谨慎操作)
- 关闭 VS Code
- 删除以下目录(如果存在)
shell
rm -rf ~/.cache/vscode-cpptools
rm -rf .vscode/ipch
- 重新打开 VS Code,打开工作区
- 按 [Ctrl+Shift+P],运行
C/C++: Delete Cache and Rebuild
- 检查
#include <pcl/point_types.h>
是否仍有红波浪线。