C++ VSCode C++;IntelliSense工作正常,但PCL(点云库)除外

C++ VSCode C++;IntelliSense工作正常,但PCL(点云库)除外,c++,visual-studio-code,intellisense,vscode-settings,point-cloud-library,C++,Visual Studio Code,Intellisense,Vscode Settings,Point Cloud Library,就其本身而言,已经有很多关于VSCode IntelliSense的问题,例如,等等。然而,他们主要讨论IntelliSense一般不起作用;不为STL工作;等等 另一方面,在我的例子中,我已经在使用微软的VSCode,IntelliSense可以很好地用于所有不同的内置类、函数、STL等。但是,当涉及到(点云库)时,不知何故,不可思议的是,IntelliSense不起作用 如果您熟悉PCL,那么您一定知道它的大多数语法都太大了。由于IntelliSense不适用于它,如果你在键入每个字符时不密

就其本身而言,已经有很多关于VSCode IntelliSense的问题,例如,等等。然而,他们主要讨论IntelliSense一般不起作用;不为STL工作;等等

另一方面,在我的例子中,我已经在使用微软的VSCode,IntelliSense可以很好地用于所有不同的内置类、函数、STL等。但是,当涉及到(点云库)时,不知何故,不可思议的是,IntelliSense不起作用

如果您熟悉
PCL
,那么您一定知道它的大多数语法都太大了。由于IntelliSense不适用于它,如果你在键入每个字符时不密切注意,就很有可能出现打字错误,例如

pcl::PointCloud<pcl::PointXYZRGB>::Ptr point_cloud_ptr (new pcl::PointCloud<pcl::PointXYZRGB>);
pcl::PointCloud::Ptr point_cloud_Ptr(新的pcl::PointCloud);
事实上,即使是那些变量和函数的自动补全也不起作用——也就是说,从上面的示例中,每次我想使用它时,我都必须手动键入
point\u cloud\u ptr
的每个字符

那么,我怎样才能解决这个问题呢?或者,对于PCL来说,
PCL


注意:我在Ubuntu 16和Ubuntu 18上都面临着这个问题。我已经使用
sudo-apt-install-libpcl-dev
安装了
PCL
,头文件位于
/usr/include/
目录中。

在GitHub上尝试了不同的方法并得到了Microsoft VSCode(和C/C++扩展)团队的帮助后,看起来IntelliSense无法工作,可能是因为扩展无法找到PCL头

在Ubuntu中,PCL头通常存储在
/usr/include/PCL-
中。在我的Ubuntu 18.04中,我有
pcl-1.8
。因此,理想情况下,在
c\u cpp\u properties.json
文件中的
“includePath”
下添加
“/usr/include/pcl-1.8/**”
。e、 g

{
    "configurations": [
        {
            .
            .
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include/pcl-1.8/**"
            ],
            .
            .
            .
        }
    ],
    "version": 4
}
“/usr/include/pcl-1.8/**”中,
**
用于在
/usr/include/pcl-1.8/
目录下进行递归搜索。然而,当我发布这个问题时(我想今天也是如此),它已经不起作用了。它无法通过
pcl-
目录下的子目录。因此,备选解决方案如下:


解决方案01:(如果只想将更改应用于当前项目,请使用此解决方案)

打开C/C++扩展配置文件:
C\u cpp\u properties.json
(在Linux上,按Ctrl+Shift+p并选择
C/C++:编辑配置(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
}
{
    "configurations": [
        {
            .
            .
            "includePath": [
                "${workspaceFolder}/**",
                "${default}"
            ],
            .
            .
            .
        }
    ],
  
  "version": 4
}

解决方案02:(如果您希望在所有项目中全局应用更改,请使用此选项)

作为C/C++配置文件:
C_cpp_properties.json
特定于每个项目,编辑时只会将更改应用于当前项目。因此,要在所有项目中应用更改,必须先更新
settings.json
,然后更新
c\u cpp\u 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\u cpp\u properties.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
}
{
    "configurations": [
        {
            .
            .
            "includePath": [
                "${workspaceFolder}/**",
                "${default}"
            ],
            .
            .
            .
        }
    ],
  
  "version": 4
}


p.S.我在微软C/C++扩展的官方GitHub问题页面上问了同样的问题,最终找到了我上面提到的解决方案(但不是理想的)


以下是更多信息的链接:

我在微软C/C++扩展的官方GitHub问题页面上问了同样的问题,最终找到了解决方案(但不是理想的解决方案)。这是链接: