使用opencv编译代码 - / usr / bin / ld:找不到-lippicv

时间:2015-12-21 17:19:52

标签: c++ opencv

使用opencv编译某些代码时出现此错误

# g++ txtbin-03.1.cpp -o txtbin `pkg-config opencv --cflags --libs`
/usr/bin/ld: cannot find -lippicv
collect2: error: ld returned 1 exit status

安装opencv

# apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
# apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
# cd /var/bin && git clone https://github.com/Itseez/opencv.git && cd opencv
# cmake . && make -j2 && make install

5 个答案:

答案 0 :(得分:14)

就我而言,只需将libippicv.a从OpenCV SDK复制到/ usr / local / lib:

sudo cp 3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64/libippicv.a /usr/local/lib/

答案 1 :(得分:5)

不需要重新编译整个库,特别是如果您不需要此库。我发现了很好的即时解决方案here。如果链接已过期或中断:

解决方案只是从opencv pkg-config配置文件中删除-lippicv。因此,您必须找到opencv.pc文件,默认位于/usr/local/lib/pkgconfig/目录中。然后从Libs:部分删除上述库。

答案 2 :(得分:4)

使用以下选项重新编译OpenCv:

cmake -DWITH_IPP=ON . && make -j $(nproc) && make install

答案 3 :(得分:0)

libippicv.a 是第三方库,因此您需要在编译期间明确提供它或使其成为执行环境的一部分。

它位于〜/ OpenCV / opencv-3.1.0 / 3rdparty / ippicv / unpack / ippicv_lnx / lib / intel64 /

此外,在Makefile生成时提供cmake -DWITH_IPP = ON

答案 4 :(得分:0)

我在尝试安装opencv_contrib存储库(opencv-3.1.0 / Ubuntu 16.04)时遇到了同样的问题,并且没有一个解决方案有效(我试图用标志WITH_IPP=ON制作OpenCV,但不知何故OpenCV 3.1.0无法下载ippicv库(?),并且没有错误提示,因此我在终端尝试locate ippicv时才想到这一点。

我的解决方案是下载另一个OpenCV版本(3.0.0为我工作),make + make install with flag WITH_IPP=ON,然后复制下载的ippicv库(应该位于/usr/local/share/OpenCV/3rdparty/lib/libippicv.a到现在为止)/usr/local/lib/

我不知道这是否是OpenCV 3.1.0中的一个已知错误,但是这个肯定值得关注。