终于把PCL点云库编译出来了!

这件事的起源还得从师姐找我帮忙开始代码开始说起……

系统:Ubuntu18.04

原本我用的libpcl库用得好好的,直到有一天师姐想让我帮忙测试python的pcl库,我在linux下使用的是pycharm+anaconda,在setting装了pcl库之后,并没有正常运行。于是我按照某博客的说明操作之后,还把我原本libpcl的库搞坏了,真是太难了。也就是说我现在编译包含pcl的库总是报错。

编译包含PCL库的程序时:
报错: /usr/lib/x86_64-linux-gnu/cmake/pcl/PCLConfig.cmake:772(pcl_report_not_found)
CMakeLists.txt:16 (find_package)

既然装了libpcl库,为什么还不能识别pcl呢?我尝试把路径都包含进CMakelists.txt,可都没有效果,于是我就想,要不把pcl源码直接编译一遍得了。

真是too young too naive

编译PCL点云库,同样报错。编译说明在此

报错:
/x86_64-linux-gnu/libSM.so: undefined reference to uuid_generate@UUID_1.0
/x86_64-linux-gnu/libSM.so: undefined reference to uuid_unparse_lower@UUID_1.0

看了这个老哥的解决方法,其实大概的意思就是说,可能是我在anaconda装了这个pcl库,然后我又重新编译源码,导致冲突,那么就可以把anaconda的路径暂时去掉,让find_package无法搜索到anaconda的库。

很可惜,我按照做了,同样失败了。后来我又想,应该就是这个问题没错,之前没装这个anaconda的库都没问题,于是我做了一个大胆的决定,把anaconda删掉。

步骤的话,就是直接删除anaconda目录,然后在.bashrc里把环境变量去掉就行了,具体可自行查询。

然后重新编译pcl库,依然出现错误…快绝望了。

报错:c++: internal compiler error: 已杀死 (program cc1plus)

冷静了一会之后,检查了错误,这错误好解决,内存不足…本机内存+交换空间都16G了,还不够。不够是吧,财大气粗的我打算再给多你8G内存(这个给多少自己决定):

输入以下命令:(在输入之前free一下看看自己的内存,输入下列命令之后再输一次free看是否有增加)

sudo dd if=/dev/zero of=/swapfile bs=8192 count=1048576
sudo mkswap /swapfile
sudo swapon /swapfile

最终编译成功了,测试包含pcl库的程序,妥妥的能用。

编译完之后,把内存收回来:

sudo swapoff /swapfile
sudo rm /swapfile

如果我的文章对你有帮助,欢迎关注,点赞,评论。

发布了39 篇原创文章 · 获赞 50 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/Hanghang_/article/details/104719901