美文网首页程序员
在安装pcl库时遇到的cmake与anaconda的冲突问题

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

作者: LangweiligeMens | 来源:发表于2020-05-18 17:24 被阅读0次

    最近因为某些原因需要用到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的冲突问题

        本文链接:https://www.haomeiwen.com/subject/iqcpohtx.html