2010-09-17 3 views
1

J'ai un problème de compilation que je ne peux pas comprendre pour OpenCV2.1 en C++.OpenCV, problème de compilation d'éclipse

Voici un code de test simple, je suis en train de compiler:

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

using namespace std; 

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

je une erreur de compilation avec une référence non définie comme suit

**** 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. 

L'erreur est C: /OpenCV2.1 /include/opencv/cxmat.hpp:378: référence indéfinie à `cv :: fastFree (void *) '

Je crois que j'ai compilé correctement toutes les bibliothèques de la commande ci-dessus ... Quel est le problème?

Merci

Répondre

1

Même si le message indique qu'il n'a pas trouvé ce symbole sur les bibliothèques OpenCV, je dois souligner que depuis la ligne de commande collée ci-dessus, il semble que vous essayez de lier votre application contre 64 bits bibliothèques compilées, comme indiqué par -LC:\Program Files\Point Grey Research\FlyCapture2\lib64. Cela signifie que vous devez compiler OpenCV pour qu'il soit en 64 bits, ou compiler les deux pour avoir 32 bits.

Il vous manque probablement une bibliothèque. Sous Windows, mes projets OpenCV ajoutent généralement cv210.lib cvaux210.lib cxcore210.lib cxts210.lib highgui210.lib, mais j'utilise Visual Studio 2005 la plupart du temps.

1

J'ai eu des problèmes pour lier cv :: fastfree lorsque la bibliothèque OpenCV était construite avec la bibliothèque parallèle TBB d'intel, la construction sans TBB fonctionnait