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'
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
Merci Chris, j'ai mis à jour mon post. Je suis dans l'attente de votre réponse. – Louis