PCL1.8之features模組編譯預處理PCL_ONLY_CORE_POINT_TYPES
阿新 • • 發佈:2019-01-07
最近要用到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檔案,這樣才不會報錯