加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

openrave0.9安装遇到依赖问题及解决流程

发布时间:2020-12-14 02:02:20 所属栏目:百科 来源:网络整理
导读:问题 cmake 时输出下面的失败信息,虽然最后可以make install(其实就是拷贝了库文件)安装上,但是由于过程中有些步骤失败,导致执行时缺少一些库文件,无法执行。 – Performing Test HAVE_ALL_PYTHON_HEADERS – Performing Test HAVE_ALL_PYTHON_HEADERS

问题

cmake 时输出下面的失败信息,虽然最后可以make install(其实就是拷贝了库文件)安装上,但是由于过程中有些步骤失败,导致执行时缺少一些库文件,无法执行。

– Performing Test HAVE_ALL_PYTHON_HEADERS
– Performing Test HAVE_ALL_PYTHON_HEADERS - Failed
– failed to use boost python libraries,check if python-numpy is installed.

执行时提示:

Traceback (most recent call last):
File
“/home/aburchardt/x86_64/opt/openrave/lib/python2.7/dist-packages/openravepy/openravepy/ikfast.py”,
line 6331,in
import openravepy
File
“/home/aburchardt/x86_64/opt/openrave/lib/python2.7/dist-packages/openravepy/init.py”,
line 35,in
openravepy_currentversion = loadlatest()
File
“/home/aburchardt/x86_64/opt/openrave/lib/python2.7/dist-packages/openravepy/init.py”,
line 16,in loadlatest
return loadversion(‘_openravepy‘)
File
“/home/aburchardt/x86_64/opt/openrave/lib/python2.7/dist-packages/openravepy/init.py”,
line 19,in _loadversion
mainpackage = import(“openravepy”,globals(),locals(),
[targetname])
File
“/home/aburchardt/x86_64/opt/openrave/lib/python2.7/dist-packages/openravepy/openravepy/init.py”,
line 29,in
from openravepy_int import *
ImportError: No module named openravepy_int

遇到这种问题:

  • 首先最先想到的看网上有没有人遇到同样的问题,可能会有,但是每个人的系统所安装的包、版本以及系统本身的差异性(有了docker镜像这问题貌似有了希望了),很难碰到一模一样的问题,一样的解决方法(可能这是linux初使用者最头大的问题),因此就需要分析问题的所在了。

  • 一般情况下,软件安装都是包的依赖问题,第一,所依赖的包要安装了;第二,所安装的依赖包,路径要能找到,不然和没装一样。关于路径就有环境变量,和路径文件几种指定方式。一般的软件都有自己的环境变量;

  • 对于python来说:
    1)在终端自己输入,python ; import sys; sys.path 自己查看所有的路径
    2)默认路径搜索方式为,当前目录–>PYTHONPATH环境变量中的路径—>系统路径,.pth中的路径;

下面列出自己解决问题的过程:

  1. 在软件执行时提示openravepy_int找不到,locate openravepy_int文件,发现在/usr/lib下面确实没有该模块,推测是在安装过程中出现了问题,所以在cmake .. 输出的信息中发现:
    openrave0.9安装遇到依赖问题解决流程

  2. 因此,问题就在这个地方,现在找到在哪个CMakefile.txt中输出了该信息:

  3. 发现是在./python/binding 下的CMakeLists.txt中输出该失败信息,打开该文件:

  4. 发现是执行check_cxx_source_runs,测试头文件包含和库文件连接时失败了(有可能文件本身不存在,或者是路径没有指定),所以输出包含路径:

    输出具体路径信息如下:

  5. 然后locate发现头文件都是存在的,而且include路径也是正确的,估计包路径不对链接出错,然后每次删除一个include头文件测试,注意这里cmake之前一定要rm CMakeCache.txt,不然仍然是上一次的结果,切记切记。发现在包含boost时,编译运行出现错误,这里面没有出错信息,因此自己创建个test.cpp测试:

    出现以下错误信息:

  6. 经过网上查询,对比前面的cmake输出调试信息,发现是缺少了libboost_system.so库文件的指定,在test.cpp编译时添加-I boost_system发现成功,添加到CMakeFiles.txt文件中如下:

  7. 问题完美解决,就是个库文件没有指定的错误。

综上,linux下面的问题可能每个人都会不一样,软件安装过程中无非就是包的依赖问题,依赖可能和版本有关、路径有关;只要耐心进行分析,解决具体碰到的问题,就能迎刃而解。。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读