今儿写篇心情日志,记录我崩了的心态。。
之前用ICP取做correspondence效果不好,导师就建议用NDT试试。 好了,我就开始找资料,了解理论,然后找代码参考。鉴于之前的经验,自己写的代码或者copy & modify 别人的代码,跑起来速度贼慢。就心里想着找现成的吧,现成的库就。。pcl吧。。。也没别的选择了。之前一直用python,那就先去下pcl-python, pcl-python对python的版本还有要求,只能2.7和3.5。 行吧, 那就acacnda配置环境。环境配置好之后,呵呵,猛然发现pcl-python没有NDT.
妥协。硬着头皮搞c++版的pcl吧,反正做odometry会c++是硬条件啊。
brew install pcl
so easy. 一跑, 各种bug. 说是找不到visualization头文件, 这不在那呢么?咋就找不到??各种搞。 卸了装,装了卸。。还试了
git clone https://github.com/PointCloudLibrary/pcl
make 不了,一make就各种错,仔细看了下,主要是Xcode, eigen的报错,
最后,终于发现问题了。。。
Warning: pcl dependency gcc was built with a different C++ standard
library (libstdc++ from clang). This may cause problems at runtime.
以及别人的解释
我们用的Unity版本很老。Unity4.7,打包的时候发现XCODE10无法打包出来,编译过程中老是会出现头文件缺失的情况。查了很久才发现,原来XCode10和之前版本删了一个库libstdc++,这就很好的解释了为什么之前打包会出现各种各样的头文件缺失了。
我们后来用了XCode9.4 发现可以正常编译。这更进一步证实了那个错误。
两三天已经过去了,我还在路上。。。
keep going。。。
附上下载地址
https://github.com/PointCloudLibrary/pcl/releases
因为我在国外,可以直接下载,不晓得国内的小伙伴能否打开,要是没法下载的话,可以这里,这是最新版本的pcl-1.11.0:
链接: https://pan.baidu.com/s/1Yz2z9bwB-J8yrO0kO9SkVw
提取码: ftpg
尝试解决方案:
cmake 时将SYSROOT指定为CommandLineTools
cd /usr/local/Cellar/pcl-pcl-1.11.0
mkdir build && cd build
cmake .. -DCMAKE_OSX_SYSROOT="/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk"
make -j8
make install