在安装pcl库时遇到的cmake与anaconda的冲突问题

最近因为某些原因需要用到pcl库,所以准备着手安装它。

关于安装pcl库的教程网上有很多这里就不再赘述,只说说自己遇到的比较困扰的问题。

我的配置环境:ubuntu16.04 anaconda3 python3.7 pcl1.9.0

我使用的安装方法是从源码对pcl库进行编译,在依赖项全部搞定之后,在pcl1.9.0文件夹下运行

mkdir build

cd build

cmake ..

到这就出问题了,主要问题如下:

CMake Warning at cmake/pcl_targets.cmake:194 (add_library):

  Cannot generate a safe runtime search path for target pcl_io because files

  in some directories may conflict with libraries in implicit directories:

    runtime library [libz.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:

      /home/filex/anaconda3/lib

    runtime library [libfreetype.so.6] in /usr/lib/x86_64-linux-gnu may be hidden by files in:

      /home/filex/anaconda3/lib

    runtime library [libexpat.so.1] in /usr/lib/x86_64-linux-gnu may be hidden by files in:

      /home/filex/anaconda3/lib

    runtime library [libxml2.so.2] in /usr/lib/x86_64-linux-gnu may be hidden by files in:

      /home/filex/anaconda3/lib

    runtime library [libQt5Sql.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:

      /home/filex/anaconda3/lib

    runtime library [libQt5Network.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:

      /home/filex/anaconda3/lib

  Some of these libraries may not be found correctly.

Call Stack (most recent call first):cmake

  io/CMakeLists.txt:331 (PCL_ADD_LIBRARY)

出现了很多这样类似的报错。很明显,问题出在找库文件时的路径跑到anaconda那去了,在网上搜了一下解决办法,基本上清一色的是让修改PATH路径,让把PATH中包含anaconda的路径先去除。

具体可以参考https://github.com/pism/pism/issues/356,文中写的很详细了。但可惜这种办法并没有解决我的问题。

后来看到有其他文章是直接把anaconda文件夹中的lib文件夹直接删除,再对pcl进行编译。文章链接我找不到了,也是很不好意思- -。

接下来重新运行

cmake ..

这样就不会出现如上的问题了,于是继续运行

make

本以为可以高枕无忧了,但事情好像没有那么容易,编译到一半又报如下错误:

make[2]: *** No rule to make target '/home/filex/anaconda3/lib/libpng.so', needed by 'lib/libpcl_io.so.1.9.0'. Stop.

CMakeFiles/Makefile2:250: recipe for target 'io/CMakeFiles/pcl_io.dir/all' failed

这意思是又需要anaconda3/lib了?抱着试一试的想法又把anaconda3/lib还原了回来,再次运行make,又报错如下:

/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libSM.so: undefined reference to `uuid_unparse_lower@UUID_1.0'

/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/libSM.so: undefined reference to `uuid_generate@UUID_1.0'

网上又查了一圈,最终根据这篇文章找到了解决办法https://blog.csdn.net/u014734886/article/details/93029349。该作者使用的是anaconda2,它删除了anaconda2/lib下的libuuid库文件。于是我找到自己anaconda3目录下的lib,搜索libuuid,找到了5个文件


将他们全部删除,再运行make,在一段漫长的等待后,终于成功编译了!

你可能感兴趣的:(在安装pcl库时遇到的cmake与anaconda的冲突问题)