使用OriganizedFastMesh出现如下报错:

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	LNK2001	无法解析的外部符号 "protected: virtual void __cdecl pcl::OrganizedFastMesh<struct pcl::PointNormal>::performReconstruction(struct pcl::PolygonMesh &)" (?performReconstruction@?$OrganizedFastMesh@UPointNormal@pcl@@@pcl@@MEAAXAEAUPolygonMesh@2@@Z)	

我是通过https://github.com/PointCloudLibrary/pcl/releases/tag/pcl-1.11.1来下载PCL-1.11.1-AllInOne-msvc2019-win64.exe来安装的,所以可能没有预编译这个模块?总之,解决方法就是加个

#define PCL_NO_PRECOMPILE

但是加在文件中我也不知道该加在哪个文件,我是把这个加载了cmake文件中

add_compile_definitions("PCL_NO_PRECOMPILE")

加了这句话以后,编译,又会报一个错误:

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    C2872    “detail”: 不明确的符号    TestCarModel    **********************************\vtkAtomic.h    358    

根据网上提供的方法,需要把 vtkAtomic.h 这个文件中的三处detail的前面加上::,即变成::detail

改完以后,编译,又会报一个错:

严重性	代码	说明	项目	文件	行	禁止显示状态
错误	C1128	节数超过对象文件格式限制: 请使用 /bigobj 进行编译	

修改camke文件,如下加一句:

add_definitions("/bigobj")

即可。然后就可以继续编译运行了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注