PCL :: PointXyz不允许使用不完整的类型
pcl::PointXYZ incomplete type not allowed
我正在尝试在PCL的Kdtreeflann类上使用RADIUS搜索。因此,作为第一步,我在这里密切关注教程。但是,Visual Studio代码在抱怨,第31行不允许使用不完整的类型。由于这是PointCloud网站的确切代码,我不知道它在哪里失败。
我在Linux机器上使用PCL 1.7,GCC 5(.4,我认为)。其中似乎是通过VS代码找到的。此错误发生在汇编之前。在下面编译代码片段没有任何错误,但不幸的是,整个教程脚本的汇编失败了一些错误(不同的问题),因此我无法测试,如果行为是预期的。
。我的问题:
- "不允许不完整的类型"警告是什么?
- 它来自哪里(在这种情况下)?
- 如果汇编成功,是否可能导致意外行为
代码段:
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: }
需要完全定义用于建筑物的链接阶段才能成功。您的程序使该类型不完全定义,因为您拥有的#include语句只有对pcl::PointXYZ
的远期引用。
对于完整的定义,您需要#include <pcl/point_types.h>
相关文章:
- 字符类型转换不兼容
- C++模板/别名 - 模板参数列表中参数 1 处的类型/值不匹配
- 错误:"模板<类_Tp,类_Dp>类 std::unique_ptr"的模板参数列表中参数 1 的类型/值不匹配
- 为什么"fun(i)"被推导出为"fun<int&>"而不是"fun<int>",因为"i"是"int"的类型而不是参考?
- 创建模板类型而不新建/删除
- 成员引用基类型 'char' 不是 C++ 中的结构或联合
- "+=" 操作在类型之间不起作用 std::复杂<double>和__complex__双精度
- 何时使用表达式的类型(而不是类别)?
- 表达式必须具有类类型。不知道怎么解决
- 不同c++编译器之间的自动类型推导不匹配
- 调用的对象类型 'double' 不是 report() 函数的函数或函数指针
- 模板 ctor 类型推导不起作用(没有匹配的构造函数用于初始化 ...)与函数<>参数
- 在变量名后声明带有 () 的非内部类型与不使用变量名的行为不同。即 std::map<int,char>x(); - 这是怎么回事?
- 在 lambda 中从引用类型捕获的值的类型,不使用通用捕获
- 使用 AWS c++ 接口将文件上传到 s3 时内容类型标签不正确
- 有没有办法通过插入新类型名称而不是 int 来使用 2 位大小类型而不是 int?
- 模板参数列表中参数 3 处的类型/值不匹配
- 为什么函数返回类型中不允许参数推导?
- 有没有办法用不变语法获得当前的类类型?
- 标准容器模板可以用不完整类型实例化吗?