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

前端之家收集整理的这篇文章主要介绍了openrave0.9安装遇到依赖问题及解决流程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

问题

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

猜你在找的设计模式相关文章