簡體   English   中英

eclipse和ubuntu 13.04構建opencv 2.4.5應用程序時出錯

[英]error while building opencv 2.4.5 application with eclipse and ubuntu 13.04

這可能是一個菜鳥問題,但我已經堅持了一段時間,感謝您的幫助...

我已經能夠使用終端安裝opencv並運行示例應用程序而沒有任何問題,但是我想使用eclipse輕松管理我的項目...

我已按照[鏈接] http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html中 opencv教程給出的說明進行操作。

我遵循了所有步驟,但仍然出現以下錯誤

/usr/bin/ld: cannot find -llibopencv_calib3d
/usr/bin/ld: cannot find -llibopencv_contrib
/usr/bin/ld: cannot find -llibopencv_core
/usr/bin/ld: cannot find -llibopencv_features2d
/usr/bin/ld: cannot find -llibopencv_flann
/usr/bin/ld: cannot find -llibopencv_gpu
/usr/bin/ld: cannot find -llibopencv_highgui
/usr/bin/ld: cannot find -llibopencv_imgproc
/usr/bin/ld: cannot find -llibopencv_legacy
/usr/bin/ld: cannot find -llibopencv_ml
/usr/bin/ld: cannot find -llibopencv_nonfree
/usr/bin/ld: cannot find -llibopencv_objdetect
/usr/bin/ld: cannot find -llibopencv_photo
/usr/bin/ld: cannot find -llibopencv_stitching
/usr/bin/ld: cannot find -llibopencv_superres
/usr/bin/ld: cannot find -llibopencv_ts
/usr/bin/ld: cannot find -llibopencv_video
/usr/bin/ld: cannot find -llibopencv_videostab
collect2: error: ld returned 1 exit status
make: *** [Test_OpenCV01] Error 1

在步驟和教程之間我能找到的唯一區別是:運行命令時:

pkg-config --libs opencv

這是我的輸出

/usr/local/lib/libopencv_calib3d.so /usr/local/lib/libopencv_contrib.so /usr/local/lib/libopencv_core.so /usr/local/lib/libopencv_features2d.so /usr/local/lib/libopencv_flann.so /usr/local/lib/libopencv_gpu.so /usr/local/lib/libopencv_highgui.so /usr/local/lib/libopencv_imgproc.so /usr/local/lib/libopencv_legacy.so /usr/local/lib/libopencv_ml.so /usr/local/lib/libopencv_nonfree.so /usr/local/lib/libopencv_objdetect.so /usr/local/lib/libopencv_photo.so /usr/local/lib/libopencv_stitching.so /usr/local/lib/libopencv_superres.so /usr/local/lib/libopencv_ts.so /usr/local/lib/libopencv_video.so /usr/local/lib/libopencv_videostab.so 

所以庫名有些不同,所以我使用已有的名稱。

從eclipse自動執行的命令行是

g++ -L/usr/local/lib/ -o "Test_OpenCV01"  ./src/main.o   -llibopencv_calib3d -llibopencv_contrib -llibopencv_core  -llibopencv_features2d  -llibopencv_flann -llibopencv_gpu -llibopencv_highgui -llibopencv_imgproc -llibopencv_legacy -llibopencv_ml -llibopencv_nonfree -llibopencv_objdetect -llibopencv_photo -llibopencv_stitching -llibopencv_superres -llibopencv_ts -llibopencv_video -llibopencv_videostab

它明確指定庫路徑為/ usr / local / lib /,這是共享庫所在的位置,但是在錯誤中指出它無法在/ usr / bin / ld中找到lib文件

PS我都嘗試過

1)配置OpenCV以使用共享庫:

須藤gedit /etc/ld.so.conf.d/opencv.conf

並在文件末尾添加以下行

保存后在/ usr / local / lib中運行sudo ldconfig。

2)運行命令

導出LD_LIBRARY_PATH = / usr / local / lib

我還加了

PKG_CONFIG_PATH = $ PKG_CONFIG_PATH:/ usr / local / lib / pkgconfig導出PKG_CONFIG_PATH

到/etc/bash.bashrc文件的末尾。

感謝您的高級幫助。

您的鏈接步驟指定了錯誤的庫。 如果庫是libfoo.so ,那么您需要說-lfoo

更換

g++ -L/usr/local/lib/ -o "Test_OpenCV01"  ./src/main.o   -llibopencv_calib3d -llibopencv_contrib -llibopencv_core  -llibopencv_features2d  -llibopencv_flann -llibopencv_gpu -llibopencv_highgui -llibopencv_imgproc -llibopencv_legacy -llibopencv_ml -llibopencv_nonfree -llibopencv_objdetect -llibopencv_photo -llibopencv_stitching -llibopencv_superres -llibopencv_ts -llibopencv_video -llibopencv_videostab

g++ -L/usr/local/lib/ -o "Test_OpenCV01"  ./src/main.o   -lopencv_calib3d -lopencv_contrib -lopencv_core  -lopencv_features2d  -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab

您可以在此處閱讀有關鏈接選項的更多信息。

即使文件名類似於/ usr / local / lib文件夾下的liblibopencv_core.so,在GCC C ++鏈接器庫中也只需提及opencv_core 對要添加到庫中的其他文件執行相同的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM