uCntu 11.10上的OpenCV

时间:2011-10-15 23:16:10

标签: c++ c opencv ubuntu

我刚刚将我的系统从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

为了安装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

任何人都可以帮助我?

5 个答案:

答案 0 :(得分:6)

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

g++ hello.c -o hello `pkg-config --cflags --libs opencv` 

答案 1 :(得分:2)

我认为这是因为从gcc 4.5到gcc 4.6的一些变化

尝试使用此命令(即,将库移动到最后,而不是在命令行的开头) - 它适用于我:

g ++ -I / usr / include / opencv hello.c -lcxcore -lhighgui -lm

答案 2 :(得分:0)

我还在使用kubuntu 10.10所以我不太熟悉11.10是如何工作的,但是找不到库的问题最常见的答案是使用 ldconfig sudo < / strong>即可。它将刷新库数据库。如果这没有帮助,请查看 / usr / lib / usr / lib64 / usr / lib32 ,因为它是默认位置其中apt-get抛出库。当您找到库时,请更改 LD_LIBRARY_PATH ,使其包含该目录。我不认为/ home / opencv / lib是它们的位置,但我不知道你的环境

答案 3 :(得分:0)

我刚刚在笔记本电脑上升级到11.04并遇到类似问题。我会尝试构建最新版本的OpenCV(2.3.1)并查看是否有任何修复,这似乎为我解决了一些问题。

答案 4 :(得分:0)

使用以下命令,它对我有用:

  

gcc pkg-config --cflags opencv opencv.c -o open_cv pkg-config --libs opencv