C++ 使用opencv-/usr/bin/ld编译代码:找不到-lippicv
当使用C++ 使用opencv-/usr/bin/ld编译代码:找不到-lippicv,c++,opencv,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 使用以下选项重新编译OpenCv: cmake -DWITH_IPP=ON . && make -j $(nproc) &
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
使用以下选项重新编译OpenCv:
cmake -DWITH_IPP=ON . && make -j $(nproc) && make install
就我而言,只需将libippicv.a从OpenCV SDK复制到/usr/local/lib即可:
sudo cp 3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64/libippicv.a /usr/local/lib/
libippicv.a是第三方库,因此您需要在编译期间显式提供它,或者将其作为执行环境的一部分 它位于~/OpenCV/OpenCV-3.1.0/3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64/
另外,在生成Makefile时提供cmake-DWITH_IPP=ON。无需重新编译整个库,尤其是在不需要此库的情况下。我发现了一个很好的解决方案。如果链接过期或断开:
解决方案只是从opencv pkg配置文件中删除
-lippicv
。因此,您必须找到opencv.pc
文件,该文件默认位于/usr/local/lib/pkgconfig/
目录中。然后从Libs部分:
删除前面提到的库 我在尝试安装opencv_contrib存储库(opencv-3.1.0/Ubuntu 16.04)时遇到了同样的问题,但所有解决方案都不起作用(我尝试使用和上的_IPP=ON来制作opencv,但不知何故opencv 3.1.0未能下载ippicv
库(?)并且没有错误提示,所以我只是在尝试在终端中定位ippicv
时才发现这一点
我的解决方案是下载另一个OpenCV构建(3.0.0适合我),使用标志和_IPP=ON
进行make+make安装,然后将下载的ippicv库(现在应该位于/usr/local/share/OpenCV/3rdparty/lib/libippicv.a
复制到/usr/local/lib/
我不知道这是否是OpenCV 3.1.0中的一个已知错误,但这一个绝对值得注意。您检查过这个问题和答案吗?在哪里添加行?找不到
目标链接库(
或您编译openCV周围的任何其他行?是的,因此在编译期间,您可以在lippicv Library上使用以下选项编译openCV:with_IPP=on,但我找不到将该行添加到CMakeLists.txt:
…当我搜索文本文件时,我找不到目标链接库
这应该是最好的修复方法。
sudo cp 3rdparty/ippicv/unpack/ippicv_lnx/lib/intel64/libippicv.a /usr/local/lib/