gpt4 book ai didi

c++ - VSCode C++ IntelliSense 工作正常,除了 PCL(点云库)

转载 作者:行者123 更新时间:2023-12-04 13:34:24 25 4
gpt4 key购买 nike

在 SO 本身,已经有很多关于 VSCode IntelliSense 的问题,例如 que1que2que3 等。 然而,他们主要谈论的是 IntelliSense 不能正常工作;不为 STL 工作;等等。
另一方面,就我而言,我已经在使用 Microsoft 的 VSCode C/C++ Extension,并且 IntelliSense 适用于所有不同的内置类、函数、STL 等。 但是,当谈到 PCL (点云库)时,不知何故,奇怪的是,IntelliSense 不起作用。
如果您熟悉 PCL,那么一定知道它的大部分语法都太大了。并且由于 IntelliSense 不起作用,如果您在输入每个字符时不密切注意,则很可能会出现拼写错误,例如,

pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
事实上,即使是那些变量和函数的自动完成也不起作用——即,从上面的例子来看,每次我想使用 point_cloud_ptr 时,我都必须手动输入它的每个字符。
那么,我该如何解决这个问题?或者 PCL 不可能?
注意: 我在 Ubuntu 16 和 Ubuntu 18 上都遇到了这个问题。我已经使用 PCL 安装了 sudo apt install libpcl-dev,头文件位于 /usr/include/ 目录中。

最佳答案

在尝试了不同的东西并从 GitHub 上的 Microsoft VSCode(和 C/C++ 扩展)团队获得帮助后,看起来 IntelliSense 不起作用,可能是因为扩展无法找到 PCL header 。
在 Ubuntu 的情况下,PCL header 通常存储在 /usr/include/pcl-<version> .在我的 Ubuntu 18.04 中,我有 pcl-1.8 .因此,理想情况下,添加 "/usr/include/pcl-1.8/**""includePath"c_cpp_properties.json文件应该工作。例如

{
"configurations": [
{
.
.
"includePath": [
"${workspaceFolder}/**",
"/usr/include/pcl-1.8/**"
],
.
.
.
}
],
"version": 4
}
"/usr/include/pcl-1.8/**" , **用于 /usr/include/pcl-1.8/ 下的递归搜索目录。但是,当我发布问题时(我认为今天也是如此),它不起作用。它无法通过 pcl-<version> 下的子目录目录。因此,替代解决方案如下:

解决方案 01: (如果您只想将更改应用于当前项目,请使用此选项)
打开 C/C++ 扩展配置文件: c_cpp_properties.json (在 Linux 上,按 Ctrl + Shift + P 并选择 C/C++: Edit Configurations (JSON) )
现在,由于递归搜索不起作用,另一种方法是指定 includePath 下的所有子目录。 :
{
"configurations": [
{
.
.
"includePath": [
"${workspaceFolder}/**",
"/usr/include/eigen3",
"/usr/include/pcl-1.8",
"/usr/include/pcl-1.8/pcl",
"/usr/include/pcl-1.8/pcl/2d",
"/usr/include/pcl-1.8/pcl/apps",
"/usr/include/pcl-1.8/pcl/common",
"/usr/include/pcl-1.8/pcl/compression",
"/usr/include/pcl-1.8/pcl/console",
"/usr/include/pcl-1.8/pcl/features",
"/usr/include/pcl-1.8/pcl/filters",
"/usr/include/pcl-1.8/pcl/geometry",
"/usr/include/pcl-1.8/pcl/impl",
"/usr/include/pcl-1.8/pcl/in_hand_scanner",
"/usr/include/pcl-1.8/pcl/io",
"/usr/include/pcl-1.8/pcl/kdtree",
"/usr/include/pcl-1.8/pcl/keypoints",
"/usr/include/pcl-1.8/pcl/ml",
"/usr/include/pcl-1.8/pcl/modeler",
"/usr/include/pcl-1.8/pcl/octree",
"/usr/include/pcl-1.8/pcl/outofcore",
"/usr/include/pcl-1.8/pcl/people",
"/usr/include/pcl-1.8/pcl/range_image",
"/usr/include/pcl-1.8/pcl/recognition",
"/usr/include/pcl-1.8/pcl/registration",
"/usr/include/pcl-1.8/pcl/ros",
"/usr/include/pcl-1.8/pcl/sample_consensus",
"/usr/include/pcl-1.8/pcl/search",
"/usr/include/pcl-1.8/pcl/segmentation",
"/usr/include/pcl-1.8/pcl/stereo",
"/usr/include/pcl-1.8/pcl/surface",
"/usr/include/pcl-1.8/pcl/tracking",
"/usr/include/pcl-1.8/pcl/visualization"
],
.
.
.
}
],
"version": 4
}

解决方案 02: (如果您想在全局范围内应用更改,请使用此选项 - 跨所有项目)
作为 C/C++ 配置文件: c_cpp_properties.json特定于每个项目,编辑只会将更改应用于当前项目。因此,要在所有项目中应用更改,必须更新 settings.json然后 c_cpp_properies.json .
开通 settings.json并添加以下文本:
    "C_Cpp.default.includePath": [
"/usr/include/eigen3",
"/usr/include/pcl-1.8",
"/usr/include/pcl-1.8/pcl",
"/usr/include/pcl-1.8/pcl/2d",
"/usr/include/pcl-1.8/pcl/apps",
"/usr/include/pcl-1.8/pcl/common",
"/usr/include/pcl-1.8/pcl/compression",
"/usr/include/pcl-1.8/pcl/console",
"/usr/include/pcl-1.8/pcl/features",
"/usr/include/pcl-1.8/pcl/filters",
"/usr/include/pcl-1.8/pcl/geometry",
"/usr/include/pcl-1.8/pcl/impl",
"/usr/include/pcl-1.8/pcl/in_hand_scanner",
"/usr/include/pcl-1.8/pcl/io",
"/usr/include/pcl-1.8/pcl/kdtree",
"/usr/include/pcl-1.8/pcl/keypoints",
"/usr/include/pcl-1.8/pcl/ml",
"/usr/include/pcl-1.8/pcl/modeler",
"/usr/include/pcl-1.8/pcl/octree",
"/usr/include/pcl-1.8/pcl/outofcore",
"/usr/include/pcl-1.8/pcl/people",
"/usr/include/pcl-1.8/pcl/range_image",
"/usr/include/pcl-1.8/pcl/recognition",
"/usr/include/pcl-1.8/pcl/registration",
"/usr/include/pcl-1.8/pcl/ros",
"/usr/include/pcl-1.8/pcl/sample_consensus",
"/usr/include/pcl-1.8/pcl/search",
"/usr/include/pcl-1.8/pcl/segmentation",
"/usr/include/pcl-1.8/pcl/stereo",
"/usr/include/pcl-1.8/pcl/surface",
"/usr/include/pcl-1.8/pcl/tracking",
"/usr/include/pcl-1.8/pcl/visualization"
]
打开, c_cpp_properties.json并更新 includePath :
{
"configurations": [
{
.
.
"includePath": [
"${workspaceFolder}/**",
"${default}"
],
.
.
.
}
],

"version": 4
}

附言我在微软的 C/C++ 扩展的官方 GitHub 问题页面上问过同样的问题,最终找到了我上面提到的解决方案(但不是理想的解决方案)。
这是更多信息的链接: https://github.com/microsoft/vscode-cpptools/issues/5843

关于c++ - VSCode C++ IntelliSense 工作正常,除了 PCL(点云库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63065476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com