opencv-2.4.13.4在ubuntu16.04安装遇到的一些问题
2017-12-20 15:57
736 查看
出现的错误:
/usr/bin/ld: warning: libiconv.so.2, needed by //home/smiles/anaconda2/lib/libgobject-2.0.so.0, not found (try using -rpath or -rpath-link)/usr/bin/ld: warning: libpcre.so.1, needed by //home/smiles/anaconda2/lib/libgobject-2.0.so.0, not found (try using -rpath or -rpath-link)
//home/smiles/anaconda2/lib/libglib-2.0.so.0:对‘libiconv_open’未定义的引用
//home/smiles/anaconda2/lib/libglib-2.0.so.0:对‘libiconv_close’未定义的引用
//home/smiles/anaconda2/lib/libglib-2.0.so.0:对‘libiconv’未定义的引用
collect2: error: ld returned 1 exit status
apps/annotation/CMakeFiles/opencv_annotation.dir/build.make:106: recipe for target ‘bin/opencv_annotation’ failed
make[2]: * [bin/opencv_annotation] Error 1
CMakeFiles/Makefile2:7604: recipe for target ‘apps/annotation/CMakeFiles/opencv_annotation.dir/all’ failed
make[1]: * [apps/annotation/CMakeFiles/opencv_annotation.dir/all] Error 2
make[1]: * 正在等待未完成的任务….
问题分析:/home/smiles/anaconda2/lib/libgobject-2.0.so.0需要调用libiconv.so.2,但是没有被找到。在本地搜索,在/home/smiles/anaconda2/lib路径下确实存在。
1. 使用以下命令,可以查看gcc编译器是否能找到对应的动态依赖库:
gcc /home/smiles/anaconda2/lib/libiconv.so.2 --verbose
2. 不管用的方法:
ln -sf /home/smiles/anaconda2/lib/libiconv.so.2 libiconv.so.2 ln -sf /home/smiles/anaconda2/lib/libpcre.so.1 libpcre.so.1 ln -sv /home/smiles/anaconda2/lib/libiconv.so.2 libiconv.so.2 ln -sv /home/smiles/anaconda2/lib/libpcre.so.1 libpcre.so.1
编辑~/.bashrc,在LD_LIBRARY_PATH后添加/home/smiles/anaconda2/lib也不行
echo $LD_LIBRARY_PATH 查看LD_LIBRARY_PATH
3. 管用的方法:
参考的链接:http://blog.csdn.net/yangdashi888/article/details/52088264
3.1 这次,我是用cmake-gui界面生成的工程,不是在shell下输入cmake命令创建工程。
3.2 然后,我改了生成为release版本,然后关于python的包的路径,都改成了anaconda2下面的路径。
3.3 在/etc/ld.so.conf.d下创建一个opencv.conf文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
添加以下信息:
/usr/local/lib /home/smiles/anaconda2/lib sudo ldconfig
3.4 接着,执行sudo make -j16,等待一会在/home/smiles/opencv-2.4.13.4/build/lib目录下就会生成cv2.so文件,在该路径下打开终端,import cv2就可以调用2版本的opencv。
编译时错误产生的原因:
http://www.linuxidc.com/Linux/2012-07/64814.htm 中,
4000
说
Linux下编译应用程序常常会出现如下错误:
/usr/bin/ld: cannot find -lxxx意思是编译过程找不到对应库文件。其中,-lxxx表示链接库文件 libxxx.so。
一般出现这种错误有以下几种原因:
1.系统缺乏对应的库文件;
2.版本不对应;
3.库文件的链接错误;
4.库文件路径设置问题;
对应第一第二种情况,可以通过下载安装lib来解决,Ubuntu大多数可以直接通过apt-get来安装:
apt-get install libxxx-dev
一般遇到这种问题去检查系统是否已安装该lib或者是否已选择正确版本(只是习惯问题),如果还是不能解决问题,那么,引起错误的原因不是链接错误就是库文件路径问题了。
通过find指令定位到链接文件,查看链接文件是否正确的指向了我们希望的lib,如果不是,用 ln -sf /libxxx.so.x /libxxx.so 指令修改它。
如果是库文件路径引发的问题,可以到/etc/ld.so.conf.d目录下,修改其中任意一份conf文件,(可以自建conf,以方便识别)将lib所在目录写进去,然后在终端输入 ldconfig 更新缓存。
上述的操作中,说明这不是链接问题,而是库文件引发的问题。
相关文章推荐
- ubuntu16.04安装caffe遇到一些问题
- 在Ubuntu16.04下安装theano和keras遇到的一些问题
- 阿里云ECS(ubuntu16.04)安装mysql遇到的一些问题
- ubuntu16.04安装及刚使用时遇到的一些问题
- Ubuntu16.04 安装server版本遇到的一些问题
- Ubuntu Server9 + Tomcat + mysql + Jdk 安装后遇到的一些常见问题
- 【kaldi】VMware12+Ubuntu16.04+kaldi安装遇到的问题
- ubuntu14.04 虚拟机安装opencv2.4.10,make遇到的问题
- ubuntu16.04与win10双系统的安装过程遇到的问题解决方案记录
- 整理一下安装Ubuntu以来遇到的一些问题(一)
- 将ubuntu14.04 从mysql从5.5删除之后安装5.7遇到的一些问题(本篇不讨论热升级)
- Matlab2014a在Ubuntu16.04中的安装及遇到的问题
- Ubuntu下安装vsftp遇到的一些问题
- Ubuntu 安装 OpenCV3.0, 遇到的问题集合 (Problems encountered in installing OpenCV3.0 on Ubuntu)
- ubuntu16.04安装opencv3.1.0问题
- Ubuntu下安装libpcap遇到的一些问题
- opencv1.0 在 ubuntu 下的安装遇到的问题
- ubuntu 下安装 pthread man 遇到的一些问题
- ubuntu上用python安装扩展包遇到的一些问题
- ubuntu下安装QT5遇到的一些问题和解决方法