本人遇到的情況, 使用 ROS 的過程中, 發現 #include <pcl/point_types.h> 不被 VScode 識別, 在 AI 的幫助下解決了該問題, 現總結如下:
1. 查看是否有相應的文件
Linux 下, point_types.h 的存儲路徑一般為: /usr/include/pcl-1.x
(我的路徑是 /usr/include/pcl-1.12
), 在該目錄下查找是否存在該文件:
find . -type f -name <文件名稱>
我查找到確實是存在該文件的, 所以目錄方面沒有問題
2. 查看 VScode 的 c_cpp_properties.json
在 VScode 用 c_cpp_properties.json 來指定頭文件路徑; 一般情況下需要配置該文件, 而我遇到的 #include <pcl/point_types.h> 找不到的問題, 需要在該文件中寫入:
"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, 具體代碼如下:
rm -rf ~/.cache/vscode-cpptools
之后重啟 VScode, 即可解決問題;
如果還未解決, 可以使用以下方式: (以下情況并未試過, 請謹慎操作)
- 關閉 VS Code
- 刪除以下目錄(如果存在)
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>
是否仍有紅波浪線。