2010-09-17 82 views
1

我有一個編譯問題,我無法找出在c + +中的OpenCV2.1。OpenCV,eclipse編譯問題

下面是一個簡單的測試代碼我試圖編譯:

#include <iostream> 
#include "cv.h" 

using namespace std; 

int main() { 
    cout << "Hello World" << endl; // prints !!!Hello World!!! 
    cv::Mat mtx; 
    return 0; 
} 

我具有未定義參考編譯錯誤如下

**** Build of configuration Debug for project CJMVideo **** 

**** Internal Builder is used for build    **** 
g++ -IC:\OpenCV2.1\include\opencv -IC:\Program Files\Point Grey Research\FlyCapture2\include -O0 -g3 -Wall -c -fmessage-length=0 -osrc\CJMVideo.o ..\src\CJMVideo.cpp 
g++ -LC:\OpenCV2.1\lib -LC:\Program Files\Point Grey Research\FlyCapture2\lib64 -Xlinker --enable-auto-import -oCJMVideo.exe src\CJMVideo.o -lcxcore210 -lcv210 -lhighgui210 -lml210 -lFlyCapture2 
src\CJMVideo.o:C:/OpenCV2.1/include/opencv/cxmat.hpp:378: undefined reference to `cv::fastFree(void*)' 
collect2: ld returned 1 exit status 
Build error occurred, build is stopped 
Time consumed: 1438 ms. 

的誤差C:/OpenCV2.1 /include/opencv/cxmat.hpp:378:未定義的引用`cv :: fastFree(void *)'

我相信我已經正確編譯所有庫上面的命令...有什麼問題?

感謝

回答

1

即使消息表明,它並沒有發現OpenCV的庫,符號,我必須指出,從上面粘貼的命令行,看來你是想你的應用程序對64位鏈接編譯的庫,如-LC:\Program Files\Point Grey Research\FlyCapture2\lib64所示。這意味着您必須將OpenCV編譯爲64位,或者將它們編譯爲32位。

您可能缺少一個庫。在Windows上,我的OpenCV項目通常會添加cv210.lib cvaux210.lib cxcore210.lib cxts210.lib highgui210.lib,但我大部分時間都使用Visual Studio 2005。

1

我在使用intel TBB並行庫構建OpenCV lib時無法連接TBB,因此鏈接cv :: fastfree時出現問題