2012-09-27 70 views
0

經過一些有用的技巧,這是這篇文章的新版本,事情是,它似乎我的程序以某種方式運行,但它只是出現一些錯誤......我不知道什麼它實際上提到,因爲庫安裝,我改變了路徑形式LIBS + = - LC:/usr/local/lib/ \LIBS += -L/usr/local/lib/ \,因爲有人說,它實際上指的是窗戶,而你使用Linux(查克拉),然後在目錄的末尾添加「\」並補充pkg配置我的.pro文件,所以這是一個新的問題,新版本的...:在Linux下使用Qt環境無法解析庫

Starting /home/lucifer/PR0J3CTs/FirstOpenCV-build-desktop-Qt_4_8_2_in_PATH__System__Release/FirstOpenCV... 
/home/lucifer/PR0J3CTs/FirstOpenCV-build-desktop-Qt_4_8_2_in_PATH__System__Release/FirstOpenCV exited with code 0 

Debugging starts 
the debug information found in "/usr/lib/libQtOpenGL.so.4.8.2.debug" does not match "/usr/lib/libQtOpenGL.so.4" (CRC mismatch). 
the debug information found in "/usr/lib/libQtGui.so.4.8.2.debug" does not match "/usr/lib/libQtGui.so.4" (CRC mismatch). 
the debug information found in "/usr/lib/libQtCore.so.4.8.2.debug" does not match "/usr/lib/libQtCore.so.4" (CRC mismatch). 
the debug information found in "/usr/lib/libQtTest.so.4.8.2.debug" does not match "/usr/lib/libQtTest.so.4" (CRC mismatch). 
the debug information found in "/usr/lib/libQtNetwork.so.4.8.2.debug" does not match "/usr/lib/libQtNetwork.so.4" (CRC mismatch). 
the debug information found in "/usr/lib/libQtXml.so.4.8.2.debug" does not match "/usr/lib/libQtXml.so.4" (CRC mismatch). 
the debug information found in "/usr/lib/libQtSvg.so.4.8.2.debug" does not match "/usr/lib/libQtSvg.so.4" (CRC mismatch). 
the debug information found in "/usr/lib/libQtDBus.so.4.8.2.debug" does not match "/usr/lib/libQtDBus.so.4" (CRC mismatch). 
Debugging has finished 

這是我的.pro配置[就像你看到我的評論(#)兩個LIBS配置之一,我只是想問問whi ch可能更準確或更有幫助,昨天我試過了,它發佈了一些不兼容的新版libavcodec,所以我搜索了一些並下載了libavcodec.53並配置了它,但我不確定現在會發生什麼,我現在在時刻試圖讓OpenCV的-QT參加的所有從CCR社區庫包,讓程序通過它自己處理這些問題,但我敢肯定它不會解決我的問題]:

QT  += core 
QT  -= gui 

TARGET = FirstOpenCV 
CONFIG += console 
CONFIG -= app_bundle 
CONFIG += link_pkgconfig 
PKGCONFIG += opencv 

TEMPLATE = app 

SOURCES += main.cpp 

INCLUDEPATH += /usr/local/include/opencv2/ 

#LIBS += -L/usr/local/lib/ \ 
#-libopencv_core.so \ 
#-libopencv_highgui.so \ 
#-libopencv_imgproc.so \ 
#-libopencv_features2d \ 
#-libopencv_calib3d.so 

LIBS += /usr/lib/libopencv_core.so \ 
/usr/lib/libopencv_highgui.so \ 
/usr/lib/libopencv_imgproc.so \ 
/usr/lib/libopencv_features2d.so \ 
/usr/lib/libopencv_calib3d.so \ 
/usr/lib/libavcodec.so 

而且這裏的代碼:

#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp> 

using namespace cv; 

int main() { 

    // read an image 
    Mat image = imread("002.jpg"); 
    // create image window named "My Image" 
    namedWindow("My Image"); 
    // show the image on window 
    imshow("My Image", image); 
    // wait key for 5000 ms 
    waitKey(5000); 

    return 0; 
} 
+0

我應該提到,第一個LIBS [註釋#1]的問題是沒有這樣的庫,但第一個被編譯並打開一個新的終端,它似乎只是不能顯示image ... –

回答

0

問題就解決了,正如我之前所說,我程序執行但錯誤的問題是圖片目錄,我把它放在main.cpp旁邊的源文件中,問題是如果你想獲得真正的結果使用調試或釋放模式,你應該把圖片放入那兩個目錄,然後運行另一次。

如果妳願意通過我用這是源文件相同的目錄來運行它,U應該打開一個終端或者直接按F4在烏爾Dolphin文件管理器或任何u使用和首輪qmake然後調用make和你很好去,另一個問題是我的操作系統(查克拉)不會讓已安裝的設備有一個可執行的權限,所以你必須將你的項目移動到家或在哪裏你喜歡在你的操作系統的環境裏。

已解決...:) Tnx每一個:)

0

它似乎失敗了你的LIBS聲明。

你可以試試這個:

LIBS += -LC:/usr/local/lib/ \ 
    -libopencv_core.so.2.4.2 \ 
    -libopencv_highgui.so.2.4.2 \ 
    -libopencv_imgproc.so.2.4.2 \ 
    -libopencv_features2d.so.2.4.2 \ 
    -libopencv_calib3d.so.2.ss4.2 

請在線路末端注意反斜槓。沒有這些,下一行被解析爲單獨的聲明,「-libopencv_core.so.2.4.2」本身不是有效的聲明。

+0

我修正了你提到的問題,但是它並沒有解決我的問題,但它仍然發出錯誤說「[Makefile] error 2」:File Not Found「 –

+0

你的命令是錯誤的,這將使編譯器看起來對於libibopencv_core.so.2.4.2它應該只是-lopencv_core.so.2.4.2 –

+0

嗯......我沒有看到任何lib''ib''opencv_core.so.2.4.2在我的命令中,我認爲你的錯誤,因爲它不會發出任何問題... –

1

嘗試:

QT  += core 

QT  -= gui 

TARGET = FirstOpenCV 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 


SOURCES += main.cpp 

INCLUDEPATH += /usr/local/include/opencv2/ 

LIBS += -LC:/usr/local/lib/ \ 
-lopencv_core \ 
-lopencv_highgui \ 
-lopencv_imgproc \ 
-lopencv_features2d \ 
-lopencv_calib3d 
0

我從來沒有用C看出:/ Unix上:那麼這可能是一個必要的校正(也佔@enderland答案):

LIBS += -L/usr/local/lib/ \ 
-lopencv_core \ 
-lopencv_highgui \ 
-lopencv_imgproc \ 
-lopencv_features2d \ 
-lopencv_calib3d 

我當我的系統升級到OpenCV 2.4.2時出現一些問題 - 運行時被綁定到與OS捆綁的以前版本。我不得不(痛苦)重新編譯,安裝OpenCV的,在路上我發現了一個很好的「絕招」:使用pkgconfig來代替硬編碼的路徑:

CONFIG += link_pkgconfig 
PKGCONFIG += opencv 
相關問題