2011-12-15 3 views
0

J'ai essayé de compiler le CvEM example de la documentation. J'ai placé le chemin de recherche de bibliothèque à opencv \ lib et également le chemin d'inclusion. J'ai inclus la bibliothèque d'apprentissage machine -lml mais je reveive l'erreur suivante:Bibliothèque d'apprentissage automatique OpenCV 2.1

undefined reference to CvEM::CvEM()

Si je commente CvEM em_model le code compile:

// CvEM em_model; 
CvEMParams params; 

CvEMParams ne provoque pas une erreur, je pense que les chemins d'inclusion sont ok. Est-ce que quelqu'un sait comment résoudre ce problème?

Si je cours le code dans Visual Studio, il fonctionne parfaitement.

EDIT: Ajout d'autres informations

Mon fichier .pro a les commandes suivantes

INCLUDEPATH += C:/OpenCV2.1/include 

INCLUDEPATH += C:/OpenCV2.1/include/opencv 

LIBS += -L"C:/OpenCV2.1/bin" -lcv210 -lcxcore210 -lcvaux210 -lhighgui210 -lml210 -lcxts210 \-lnetapi32` 

Et ma compilation ressemble à ceci:

Running build steps for project Check... 
Configuration unchanged, skipping qmake step. 
Starting: "C:\QtSDK\mingw\bin\mingw32-make.exe" 
C:/QtSDK/mingw/bin/mingw32-make -f Makefile.Debug 
mingw32-make[1]: Entering directory `C:/Documents and Settings/Bush/Check-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug' 
g++ -mthreads -Wl,-subsystem,windows -o debug\Check.exe debug/main.o debug/mainwindow.o debug/moc_mainwindow.o -L"c:\QtSDK\Desktop\Qt\4.7.4\mingw\lib" -lmingw32 -lqtmaind -LC:/OpenCV2.1/bin -lcv210 -lcxcore210 -lcvaux210 -lhighgui210 -lml210 -lcxts210 -lnetapi32 -lQtGuid4 -lQtCored4 -LC:\OpenSSL-Win32_full\lib 
mingw32-make[1]: Leaving directory `C:/Documents and Settings/Bush/Check-build-desktop- Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug' 
debug/mainwindow.o: In function `MainWindow': 
C:\Documents and Settings\Bush\Check-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug/../Check/mainwindow.cpp:23: undefined reference to `CvEM::CvEM()' 
C:\Documents and Settings\Bush\Check-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug/../Check/mainwindow.cpp:49: undefined reference to `CvEM::train(CvMat const*, CvMat const*, CvEMParams, CvMat*)' 
C:\Documents and Settings\Bush\Check-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug/../Check/mainwindow.cpp:59: undefined reference to `CvEM::predict(CvMat const*, CvMat*) const' 
C:\Documents and Settings\Bush\Check-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug/../Check/mainwindow.cpp:76: undefined reference to `CvEM::~CvEM()' 
C:\Documents and Settings\Bush\Check-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug/../Check/mainwindow.cpp:76: undefined reference to `CvEM::~CvEM()' 
C:\Documents and Settings\Bush\Check-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug/../Check/mainwindow.cpp:23: undefined reference to `CvEM::CvEM()' 
C:\Documents and Settings\Bush\Check-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug/../Check/mainwindow.cpp:49: undefined reference to `CvEM::train(CvMat const*, CvMat const*, CvEMParams, CvMat*)' 
C:\Documents and Settings\Bush\Check-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug/../Check/mainwindow.cpp:59: undefined reference to `CvEM::predict(CvMat const*, CvMat*) const' 
C:\Documents and Settings\Bush\Check-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug/../Check/mainwindow.cpp:76: undefined reference to `CvEM::~CvEM()' 
C:\Documents and Settings\Bush\Check-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug/../Check/mainwindow.cpp:76: undefined reference to `CvEM::~CvEM()' 
collect2: ld returned 1 exit status 
mingw32-make[1]: *** [debug\Check.exe] Error 1 
mingw32-make: *** [debug] Error 2 
The process "C:\QtSDK\mingw\bin\mingw32-make.exe" exited with code 2. 
Error while building project Check (target: Desktop) 
When executing build step 'Make' 
+1

Quelle version d'OpenCV utilisez-vous? Quelle est la commande complète que vous utilisez pour compiler? En outre, le lien que vous avez fourni est cassé, pouvez-vous vérifier s'il vous plaît. – Chris

+0

Merci Chris, j'ai mis à jour mon post. Je suis dans l'attente de votre réponse. – Louis

Répondre

0

recompiler la distribution avec la version de pintes de Moww et ça va marcher.

+0

Je suis content que vous l'ayez réussi. – Chris

Questions connexes