![](/img/trans.png)
[英]OpenCV 2.3 Compiling Issue - Undefined Refence - Ubuntu 11.10
[英]OpenCV on ubuntu 11.10
我剛剛將我的系統從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
有人可以幫幫我嗎?
為什么不使用pkg-config對你有利?
g++ hello.c -o hello `pkg-config --cflags --libs opencv`
我認為這是因為從gcc 4.5到gcc 4.6的一些變化
請嘗試使用此命令(即,將庫移動到最后,而不是在命令行的開頭) - 它適用於我:
g ++ -I / usr / include / opencv hello.c -lcxcore -lhighgui -lm
我仍然在使用kubuntu 10.10所以我並不熟悉11.10是如何工作的,但是找不到庫的問題最常見的答案是使用ldconfig和sudo 。 它將刷新庫數據庫。 如果這沒有幫助,請查看/ usr / lib , / usr / lib64和/ usr / lib32 ,因為它是apt-get拋出庫的默認位置。當您找到庫時,更改LD_LIBRARY_PATH以使其包含目錄。 我不認為/ home / opencv / lib是它們的位置,但我不知道你的環境
我剛剛在筆記本電腦上升級到11.04並遇到類似問題。 我會嘗試構建最新版本的OpenCV(2.3.1)並查看是否可以解決這個問題,這似乎為我解決了一些問題。
使用以下命令,它對我有用:
gcc
pkg-config --cflags opencv
opencv.c -o open_cvpkg-config --libs opencv
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.