最近要用到PCL,先编译了1.7版本,发现features模块下面的pcl_features_release.lib和pcl_features_debug.lib都接近40M大小;但是后来编译了1.8版本之后,发现这两个文件都是6M多一点。在理论上1.8版本这个模块还多几个.cpp和.hpp,1.8生成的.lib应该要大一些啊,但是事实却相反,不禁引起了我的兴趣,想要一探究竟。
后来发现原来是1.8版本中的features模块加了一个编译预处理命令:PCL_ONLY_CORE_POINT_TYPES,只对这个模块编译一些核心的point_types,而1.7中则是对所有的类型都进行了编译,自然要大一些了。
作者之所以这样做,应该是由于visual studio中对单个.obj文件的链接文件不能超过65536的限制,才使用了这个方法。具体的可以参考这个讨论:https://github.com/PointCloudLibrary/pcl/issues/833
但是使用PCL_ONLY_CORE_POINT_TYPES预处理命令得到的.lib,我们在使用的时候,需要在.cpp中添加相应的.hpp文件,这样才不会报错
PCL1.8之features模块编译预处理PCL_ONLY_CORE_POINT_TYPES
最新推荐文章于 2024-03-19 23:40:59 发布