OpenCv链接问题
我正在使用Kubuntu,在链接OpenCv(2.4.6.1)库时遇到了一些问题(我猜) 因此,我一直在使用本教程,并对安装进行了测试(部分:./opencv\u test\u core)。然后我下载了下面的测试文件,但可以让它工作。尝试了其他代码,但始终出现相同错误:OpenCv链接问题,opencv,linker,Opencv,Linker,我正在使用Kubuntu,在链接OpenCv(2.4.6.1)库时遇到了一些问题(我猜) 因此,我一直在使用本教程,并对安装进行了测试(部分:./opencv\u test\u core)。然后我下载了下面的测试文件,但可以让它工作。尝试了其他代码,但始终出现相同错误: g++ -L/usr/local/lib -lcv -lcxcore -lcvaux -lhighui -lm hello.cpp /usr/bin/ld: cannot find -lcv /usr/bin/ld: canno
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/local/include/opencv2
图书馆位于usr/local/lib中
(如果有帮助的话):
要链接到
OpenCV
,您必须通过g++
(将在内部运行ld
)库所在的位置(如果它们不是标准库)。如果只想链接其中的一部分,可以手动执行。
但最快的方法是依赖于pkg配置
:
g++ faceDetect.cpp $(pkg-config --libs opencv --cflags)
然而,在软件包中有一个
Makefile
,只是cd
您提取了该归档文件的目录,然后运行make
,老实说,这一切看起来都非常过时-lcv-lcxcore-lcvaux-lhighui是opencv1.0库。那是6年多以前的事了,opencv自5年前就有了自己的python包装器(cv2)。你根本不需要python opencv,最好避免使用它。是的,最恰当的是,我还想知道奇怪的名称,如果你解决了你的问题,请。至于faceDetect,我可以编译它,但遇到了另一个问题,当我只编译一个带有cvWaitKey(0)的main时,我现在得到这个:opencv错误:未指定的错误(该函数未实现。请使用Windows、GTK+2.x或Carbon支持重建库。如果您使用的是Ubuntu或Debian,请安装libgtk2.0-dev和pkg-config,然后重新运行cmake或配置脚本)在cvWaitKey文件/home/daniel/Downloads/opencv-2.4.7/modules/highgui/src/window.cpp中,在抛出“cv::Exception”what():/home/daniel/Downloads/opencv-2.4.7/modules/highgui/src/window.cpp的实例后调用了第562行terminate:error:(-2)函数未实现。请使用Windows、GTK+…@user3340703重建库,这很遗憾,但却是真的。这意味着,您的highgui模块是在没有任何gui的情况下编译的。您需要获取qt或gtk2并重新编译opencv库(cmake)我不是Ubuntu机器,但是apt get install libopencv dev应该安装一个预编译版本,包含所需的所有依赖项。除非你明确需要/想要自己编译的版本。好吧,我在cmake中添加了:-D和_QT=ON,还有什么我应该做的吗?
g++ faceDetect.cpp $(pkg-config --libs opencv --cflags)