Ubuntu 16.04 LTS 安装OpenCV-3.1.0 及 /usr/bin/ld: 找不到 -lippicv

Ubuntu 16.04 LTS 安装OpenCV-3.1.0

g++ example.cpp -o example `pkg-config --libs --cflags opencv`
/usr/bin/ld: 找不到 -lippicv
collect2: error: ld returned 1 exit status

解决方案一:

总结安装步骤:
Ubuntu 16.04 安装OpenCV 3.1.0


sudo apt-get install libgtk-3-dev  

sudo apt-get install pkg-config  

sudo apt-get install cmake

sudo apt-get install python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev

cd 到opencv-3.1.0

cmake -DINSTALL_CREATE_DISTRIB=ON  

make  

sudo make install

gedit /etc/profile

加入下面两行保存
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 

source /etc/profile


gedit /etc/bash.bashrc

加入下面两行保存
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 

source /etc/bash.bashrc

sudo ldconfig

解决方案二:

如果不想重新安装可以用此方案。在终端输入

ds@ds-Lenovo:~$ pkg-config --libs --cflags opencv

打印出:

-I/usr/local/include/opencv -I/usr/local/include -L/usr/local/lib -lopencv_shape-lopencv_stitching-lopencv_objdetect-lopencv_superres-lopencv_videostab-lippicv-lopencv_calib3d-lopencv_features2d-lopencv_highgui-lopencv_videoio-lopencv_imgcodecs-lopencv_video-lopencv_photo-lopencv_ml-lopencv_imgproc-lopencv_flann-lopencv_core

或者分开执行:

ds@ds-Lenovo:~$ pkg-config--libs opencv
-L/usr/local/lib -lopencv_shape-lopencv_stitching-lopencv_objdetect-lopencv_superres-lopencv_videostab-lippicv-lopencv_calib3d-lopencv_features2d-lopencv_highgui-lopencv_videoio-lopencv_imgcodecs-lopencv_video-lopencv_photo-lopencv_ml-lopencv_imgproc-lopencv_flann-lopencv_core

 

ds@ds-Lenovo:~$ pkg-config--cflags opencv
-I/usr/local/include/opencv -I/usr/local/include

使用 pkg-config 的 – -cflags 参数可以给出在编译时所需要的选项,而 – -libs 参数可以给出连接时的选项。

可以看到:由于使用了 pkg-config 工具来获得库的选项,所以不论库安装在什么目录下,都可以使用相同的编译和连接命令,带来了编译和连接界面的统一。

使用 pkg-config 工具提取库的编译和连接参数有两个基本的前提:

库本身在安装的时候必须提供一个相应的 .pc 文件(不这样做的库说明不支持 pkg-config 工具的使用)。
pkg-config 必须知道要到哪里去寻找此 .pc 文件。

GTK+ 及其依赖库支持使用 pkg-config 工具,所以剩下的问题就是如何告诉 pkg-config 到哪里去寻找库对应的 .pc 文件,这也是通过设置搜索路径来解决的。

对于支持 pkg-config 工具的 GTK+ 及其依赖库来说,库的头文件的搜索路径的设置变成了对 .pc 文件搜索路径的设置。.pc 文件的搜索路径是通过环境变量 PKG_CONFIG_PATH 来设置的,pkg-config 将按照设置路径的先后顺序进行搜索,直到找到指定的 .pc 文件为止。

因此安装时在/etc/bash.bashrc 中添加

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

是为了告诉pkg-config,opencv库指定的.pc文件在/usr/local/lib/pkgconfig这个路径下。也就是opencv.pc这个文件,内容如下:

# Package Information for pkg-config

prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir_old=${prefix}/include/opencv
includedir_new=${prefix}/include

Name: OpenCV
Description: Open Source Computer Vision Library
Version: 3.1.0
Libs: -L${exec_prefix}/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lippicv -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
Libs.private: -L/usr/lib/x86_64-linux-gnu -lpng -lz -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -lavcodec-ffmpeg -lavformat-ffmpeg -lavutil-ffmpeg -lswscale-ffmpeg -ldl -lm -lpthread -lrt
Cflags: -I${includedir_old} -I${includedir_new}

(把opencv.pc备份一下)可以看到库里面有-lippicv这个选项,我们把它删了就好了。

解决方案三:

从opencv.pc中可以看出,pkg-config加载库的路径是/usr/local/lib,我们去这这个路径下看看,发现没有-lippicv对应的库,别的选项都有对应的库,然后我们把-lippicv对应的库(libippicv.a)放到这个路径下就好啦了。
我的liboppicv.a在/home/ds/opencv-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64这个路径下。你的也在你自己opencv文件夹的对应路径下。
先cd 到上面这个路径下,然后cp liboppicv.a /usr/local/lib 将这个库文件复制到/usr/local/lib下就好了。

再试试,发现“/usr/bin/ld: 找不到 -lippicv
collect2: error: ld returned 1 exit status”这个错误已经解决。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/220168.html<

(0)
运维的头像运维
上一篇2025-04-14 10:57
下一篇 2025-04-14 10:59

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注