2011-11-25 42 views
0

我在項目中運行CMake(實際上是rosmake)時收到錯誤消息。我已經安裝了OpenCV,但出現以下錯誤:在Ubuntu中編譯基於OpenCV和ROS的項目

Linking CXX shared library ../lib/libCornerHelper.so 
    /usr/bin/ld: cannot find -lopencv_contrib 
    /usr/bin/ld: cannot find -lopencv_legacy 
    /usr/bin/ld: cannot find -lopencv_stitching 
    /usr/bin/ld: cannot find -lopencv_gpu 
    /usr/bin/ld: cannot find -lopencv_objdetect 
    /usr/bin/ld: cannot find -lopencv_calib3d 
    /usr/bin/ld: cannot find -lopencv_features2d 
    /usr/bin/ld: cannot find -lopencv_video 
    /usr/bin/ld: cannot find -lopencv_highgui 
    /usr/bin/ld: cannot find -lopencv_ml 
    /usr/bin/ld: cannot find -lopencv_imgproc 
    /usr/bin/ld: cannot find -lopencv_flann 
    /usr/bin/ld: cannot find -lopencv_core 
    collect2: ld returned 1 exit status 
    make[3]: *** [../lib/libCornerHelper.so] Error 1 

有沒有人知道如何解決這個問題?

+1

聽起來像你在安裝OpenCV後沒有運行'ldconfig'。或者,安裝OpenCV的路徑不在'ld.so.conf'中。 – mevatron

回答

2

顯然,他找不到opencv來鏈接您的項目。你把它安裝在/ usr或/ usr/local以外的其他地方嗎?

如果是這樣,則需要將路徑添加到LD_LIBRARY_PATH變量等。 您的系統在運行時會說什麼?

pkg-config --cflags --libs opencv 

如果你得到這樣的東西,那麼你的系統是好的。

-I/opt/opencv/include/opencv -I/opt/opencv/include -L/opt/opencv/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann 

,但如果你不這樣做,你的系統是不是能夠找到它和cmake的不會找到它要麼:

Package opencv was not found in the pkg-config search path. Perhaps you should add the directory containing `opencv.pc' to the PKG_CONFIG_PATH environment variable No package 'opencv' found 
0

如果您在使用ROS OpenCV的,相應的鏈接標誌和如果您已在manifest.xml文件中聲明瞭對opencv2的依賴關係,則應該自動選擇路徑。

如果您仍然有問題,我建議您搜索ROS Answers,如果您沒有找到任何東西,請在那裏提出您的問題。這是官方ROS支持論壇,可能會讓你更好地回答ROS特定的問題,而不是StackOverflow。