我正在尝试在PCL的KdTreefLANN类上使用radius搜索。因此,作为第一步,我密切关注教程here。但是,Visual Studio Code抱怨说,第31行不允许使用不完整的类型。由于这是PointCloud网站的确切代码,我不知道它在哪里失败。
我在Linux机器上使用PCL 1.7,GCC 5(.4,我认为)。这些包含似乎是由VS Code发现的。编译前发生此错误。编译下面的代码片段没有错误,但遗憾的是整个教程脚本的编译失败了一些错误(不同的问题),所以我无法测试,如果行为符合预期。
我的问题:
代码段:
1 : #include <pcl/point_cloud.h>
2 : #include <pcl/kdtree/kdtree_flann.h>
4 : #include <iostream>
5 : #include <vector>
6 : #include <ctime>
8 : int main (int argc, char** argv)
10: {
11: srand (time (NULL));
31: pcl::PointXYZ searchPoint;
33: searchPoint.x = 1024.0f * rand () / (RAND_MAX + 1.0f);
34: searchPoint.y = 1024.0f * rand () / (RAND_MAX + 1.0f);
35: searchPoint.z = 1024.0f * rand () / (RAND_MAX + 1.0f);
81: return 0;
82: }
答案 0 :(得分:0)
需要完全定义类型才能使构建的链接阶段成功。您的程序保留了未完全定义的类型,因为您拥有#include语句,只有pcl::PointXYZ
的前向引用。
对于完整定义,您需要#include <pcl/point_types.h>