PCL常见的编译错误

(1)error c4996: 'fopen': This function or variable may be unsafe

       解决方法:项目->属性->配置属性->C/C++ -> 预处理器 -> 预处理器定义,增加: _CRT_SECURE_NO_DEPRECATE。

       参考博文:https://blog.csdn.net/wangyang20170901/article/details/78810068

(2)...\flann\algorithms\dist.h(523): error C3861: “pop_t”: 找不到标识符

       解决方法:双击该行输出直接打开dist.h头文件;将第503行的typedef unsigned long long pop_t;移动到第480行前面。

       参考博文:https://blog.csdn.net/weixin_41991128/article/details/83864713

(3)boost\typeof\msvc\typeof_impl.hpp(125): error C2988: 不可识别的模板声明/定义

       解决方法:可以代码的源文件最开头的位置加上对BOOST_TYPEOF_EMULATION的定义:  

#define BOOST_TYPEOF_EMULATION
#include <pcl\registration\icp.h>

       参考博文:https://blog.csdn.net/qq_39031960/article/details/83544928

(4)error C4996: 'pcl::SAC_SAMPLE_SIZE': This map is deprecated and is kept only to prevent breaking existing user code. Starting from PCL 1.8.0 model sample size is a protected member of the SampleConsensusModel class。

       解决方法:打开项目属性页>C/C++>常规>SDL检查(设置为否)。 

       参考博文:https://blog.csdn.net/qing101hua/article/details/70739391

(5)Failed to find match for field 'rgba'.(例子5-1)

       解决方法:用word打开pcd文件查看的类型,发现 Fields不包含RGBA。将PCL::PointXYZRGBA修改为pcl::PointXYZ。

(6) Error:no override found for 'vtkPolyDataMapper'(例子5-1)

       解决方法:在源文件的开头加上:

#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL);
VTK_MODULE_INIT(vtkInteractionStyle);

       参考博文:https://blog.csdn.net/zzh_AI/article/details/88861221

(7) error C2039: “camera_”: 不是“pcl::visualization::PCLVisualizer”的成员(例5-2)

       解决方法:最新的pcl已经没有camera_成员了。所以需要替换为:

viewer.camera_.pos[0] = pos_vector[0];
viewer.camera_.pos[1] = pos_vector[1];
viewer.camera_.pos[2] = pos_vector[2];
viewer.camera_.focal[0] = look_at_vector[0];
viewer.camera_.focal[1] = look_at_vector[1];
viewer.camera_.focal[2] = look_at_vector[2];
viewer.camera_.view[0] = up_vector[0];
viewer.camera_.view[1] = up_vector[1];
viewer.camera_.view[2] = up_vector[2];
/***将以上的代码替换为以下函数*****/
viewer.setCameraPosition(pos_vector[0], pos_vector[1], pos_vector[2],
		look_at_vector[0], look_at_vector[1], look_at_vector[2],
		up_vector[0], up_vector[1], up_vector[2]);

       参考博文:https://www.cnblogs.com/li-yao7758258/p/6444207.html

(8)range_image_visualization.cpp(129): error C3861: “sleep”: 找不到标识符(pcl_sleep识别不了。例5-2)

       解决方法:定位到pcl_sleep的头文件pcl_macros.h,修改pcl_sleep的宏定义sleep(x) 为Sleep(x),【首字母大写】

       参考博文:https://blog.csdn.net/m0_37906001/article/details/97785515

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章