OpenCv链接问题

时间:2014-02-22 13:45:50

标签: opencv linker

我正在使用Kubuntu并且在链接OpenCv(2.4.6.1)Librarys时遇到一些问题(我猜)。

所以我一直在使用这个教程http://karytech.blogspot.de/2012/05/opencv-24-on-ubuntu-1204.html并且安装测试正常(部分:./ opencv_test_core)。然后我下载了下面的测试文件,但可以使它工作。尝试其他一些代码始终是相同的错误:

g++ -L/usr/local/lib -lcv -lcxcore -lcvaux -lhighui -lm hello.cpp
/usr/bin/ld: cannot find -lcv
/usr/bin/ld: cannot find -lcxcore
/usr/bin/ld: cannot find -lcvaux
/usr/bin/ld: cannot find -lhighui
collect2: Fehler: ld gab 1 als Ende-Status zurück ( ld exit status is 1 )

(对于教程中的奇怪库名,我也试过-lopencv_calib3d ......)

然后在code :: blocks中尝试了它并得到了这个:

main.c对cvGetRows的未定义引用

标题位于/ usr / local / include / opencv中                在/ usr /本地/包括/ opencv2 图书馆位于usr / local / lib

(如果有帮助):

$ pkg-config --cflags opencv
returns: -I/usr/local/include/opencv -I/usr/local/include  

$ pkg-config --libs opencv
returns: /usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_contrib.so ...

$ apt-cache search opencv
returns: opencv-doc - OpenCV documentation and examples
python-opencv - Python-Anbindungen für die OpenCV-Bibliothek
libavcodec-extra-53 - Libav codec library ...

1 个答案:

答案 0 :(得分:2)

要链接OpenCV,您必须传递g++(内部将ld运行)库(如果它们不是标准库)。如果您只想链接其中一些,可以手动完成。 但最快的方法是依靠pkg-config

g++ faceDetect.cpp $(pkg-config --libs opencv --cflags)

但是,在软件包中有一个Makefile,只有cd您提取该存档的目录,并运行make