uCntu 11.10上的OpenCV

Mar*_* L. 3 c c++ ubuntu opencv

我刚刚将我的系统从ubuntu 11.04更新到11.10,现在我再也无法编译任何包含对OpenCV库的引用的C程序

我已经尝试重新安装OpenCV(我使用2.1版本),但我遇到了这个错误:

/tmp/ccArHTZL.o: In function `main':
z.c:(.text+0x59): undefined reference to `cvLoadImage'
z.c:(.text+0xa0): undefined reference to `cvNamedWindow'
z.c:(.text+0xb1): undefined reference to `cvShowImage'
z.c:(.text+0xbb): undefined reference to `cvWaitKey'
z.c:(.text+0xc5): undefined reference to `cvDestroyWindow'
z.c:(.text+0xd1): undefined reference to `cvReleaseImage'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

为了安装OpenCV,我总是遵循这个过程:

$ sudo apt-get install libcv2.1 libcv-dev libcvaux2.1 libcvaux-dev libhighgui2.1
     libhighgui-dev opencv-doc python-opencv

$ export LD_LIBRARY_PATH=/home/opencv/lib
$ export PKG_CONFIG_PATH=/home/opencv/lib/pkgconfig

$ pkg-config --cflags opencv
     -I/usr/include/opencv

$ pkg-config --libs opencv
     -lcxcore -lcv -lhighgui -lcvaux -lml

$ g++ -I/usr/include/opencv -lcxcore -lhighgui -lm hello.c
Run Code Online (Sandbox Code Playgroud)

有人可以帮帮我吗?

kar*_*lip 6

为什么不使用pkg-config对你有利?

g++ hello.c -o hello `pkg-config --cflags --libs opencv` 
Run Code Online (Sandbox Code Playgroud)

  • 你应该总是把库放在行的末尾:gcc test.c`pkg-config --cflags opencv` -o test`pkg-config opencv --libs`.在我将Ubuntu升级到11.10后,这种方式变得非常重要. (3认同)