IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

Erreur LNK2019 avec VS2010 et OpenCV 2.4


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut Erreur LNK2019 avec VS2010 et OpenCV 2.4
    Bonjour,

    Depuis hier j'essaye de faire marcher opencv 2.4 avec visual studio 2010 mais je n'y arrive pas. J'ai suivi à la lettre leur tutorial mais rien n'y fait.

    J'ai le .exe du site officiel et je suis le tuto. J'ouvre l'exe et j'extrais dans mon D:\.

    Ensuite je vais à la partie "Set the OpenCV enviroment variable and add it to the systems path". Là premier problème il est écrit d’exécuter la commande suivante : setx -m OPENCV_DIR D:\OpenCV\Build\Install. Or moi je n'ai pas le dossier install dans mon dossier build. J'écris la commande sans \install. (j'ai vérifié dans les chemins, OPENCV_DIR s'est bien ajouté)

    Ensuite il faut inclure le dossier "bin" dans le path pour qu'il trouve les DLL (si j'ai bien compris). Là pas de soucis, celui que je pense être le bon est celui-ci : opencv\build\x64\vc10\bin.

    Après j'ai tout fait comme il faut, créer une feuille de propriétén etc... Seul problème, dans "Éditeur de lien" -> "entrée", je ne vois pas les lib dans "Dépendances Supplémentaires". et rien ne marche (Error LNK2019).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    1>Test.obj : error LNK2019: symbole externe non résolu _cvWaitKey référencé dans la fonction _main
    1>Test.obj : error LNK2019: symbole externe non résolu "void __cdecl cv::imshow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class cv::_InputArray const &)" (?imshow@cv@@YAXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV_InputArray@1@@Z) référencé dans la fonction _main
    1>Test.obj : error LNK2019: symbole externe non résolu "public: __thiscall cv::_InputArray::_InputArray(class cv::Mat const &)" (??0_InputArray@cv@@QAE@ABVMat@1@@Z) référencé dans la fonction _main
    1>Test.obj : error LNK2019: symbole externe non résolu _cvMoveWindow référencé dans la fonction _main
    1>Test.obj : error LNK2019: symbole externe non résolu "void __cdecl cv::namedWindow(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int)" (?namedWindow@cv@@YAXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) référencé dans la fonction _main
    1>Test.obj : error LNK2019: symbole externe non résolu "public: virtual double __thiscall cv::VideoCapture::get(int)" (?get@VideoCapture@cv@@UAENH@Z) référencé dans la fonction _main
    1>Test.obj : error LNK2019: symbole externe non résolu "public: virtual __thiscall cv::VideoCapture::~VideoCapture(void)" (??1VideoCapture@cv@@UAE@XZ) référencé dans la fonction _main
    1>Test.obj : error LNK2019: symbole externe non résolu "public: virtual bool __thiscall cv::VideoCapture::isOpened(void)const " (?isOpened@VideoCapture@cv@@UBE_NXZ) référencé dans la fonction _main
    1>Test.obj : error LNK2019: symbole externe non résolu "public: __thiscall cv::VideoCapture::VideoCapture(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0VideoCapture@cv@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) référencé dans la fonction _main
    1>Test.obj : error LNK2019: symbole externe non résolu "void __cdecl cv::fastFree(void *)" (?fastFree@cv@@YAXPAX@Z) référencé dans la fonction "public: __thiscall cv::Mat::~Mat(void)" (??1Mat@cv@@QAE@XZ)
    1>Test.obj : error LNK2019: symbole externe non résolu "public: void __thiscall cv::Mat::deallocate(void)" (?deallocate@Mat@cv@@QAEXXZ) référencé dans la fonction "public: void __thiscall cv::Mat::release(void)" (?release@Mat@cv@@QAEXXZ)
    1>Test.obj : error LNK2019: symbole externe non résolu "class cv::Scalar_<double> __cdecl cv::sum(class cv::_InputArray const &)" (?sum@cv@@YA?AV?$Scalar_@N@1@ABV_InputArray@1@@Z) référencé dans la fonction "double __cdecl getPSNR(class cv::Mat const &,class cv::Mat const &)" (?getPSNR@@YANABVMat@cv@@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "public: class cv::MatExpr __thiscall cv::Mat::mul(class cv::_InputArray const &,double)const " (?mul@Mat@cv@@QBE?AVMatExpr@2@ABV_InputArray@2@N@Z) référencé dans la fonction "double __cdecl getPSNR(class cv::Mat const &,class cv::Mat const &)" (?getPSNR@@YANABVMat@cv@@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "public: void __thiscall cv::Mat::convertTo(class cv::_OutputArray const &,int,double,double)const " (?convertTo@Mat@cv@@QBEXABV_OutputArray@2@HNN@Z) référencé dans la fonction "double __cdecl getPSNR(class cv::Mat const &,class cv::Mat const &)" (?getPSNR@@YANABVMat@cv@@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "void __cdecl cv::absdiff(class cv::_InputArray const &,class cv::_InputArray const &,class cv::_OutputArray const &)" (?absdiff@cv@@YAXABV_InputArray@1@0ABV_OutputArray@1@@Z) référencé dans la fonction "double __cdecl getPSNR(class cv::Mat const &,class cv::Mat const &)" (?getPSNR@@YANABVMat@cv@@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "public: __thiscall cv::_OutputArray::_OutputArray(class cv::Mat &)" (??0_OutputArray@cv@@QAE@AAVMat@1@@Z) référencé dans la fonction "double __cdecl getPSNR(class cv::Mat const &,class cv::Mat const &)" (?getPSNR@@YANABVMat@cv@@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "class cv::Scalar_<double> __cdecl cv::mean(class cv::_InputArray const &,class cv::_InputArray const &)" (?mean@cv@@YA?AV?$Scalar_@N@1@ABV_InputArray@1@0@Z) référencé dans la fonction "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" (?getMSSIM@@YA?AV?$Scalar_@N@cv@@ABVMat@2@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "class cv::_OutputArray const & __cdecl cv::noArray(void)" (?noArray@cv@@YAABV_OutputArray@1@XZ) référencé dans la fonction "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" (?getMSSIM@@YA?AV?$Scalar_@N@cv@@ABVMat@2@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "void __cdecl cv::divide(class cv::_InputArray const &,class cv::_InputArray const &,class cv::_OutputArray const &,double,int)" (?divide@cv@@YAXABV_InputArray@1@0ABV_OutputArray@1@NH@Z) référencé dans la fonction "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" (?getMSSIM@@YA?AV?$Scalar_@N@cv@@ABVMat@2@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "class cv::MatExpr __cdecl cv::operator+(class cv::Mat const &,class cv::Mat const &)" (??Hcv@@YA?AVMatExpr@0@ABVMat@0@0@Z) référencé dans la fonction "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" (?getMSSIM@@YA?AV?$Scalar_@N@cv@@ABVMat@2@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "class cv::MatExpr __cdecl cv::operator+(class cv::MatExpr const &,class cv::Scalar_<double> const &)" (??Hcv@@YA?AVMatExpr@0@ABV10@ABV?$Scalar_@N@0@@Z) référencé dans la fonction "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" (?getMSSIM@@YA?AV?$Scalar_@N@cv@@ABVMat@2@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "class cv::MatExpr __cdecl cv::operator*(double,class cv::Mat const &)" (??Dcv@@YA?AVMatExpr@0@NABVMat@0@@Z) référencé dans la fonction "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" (?getMSSIM@@YA?AV?$Scalar_@N@cv@@ABVMat@2@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "void __cdecl cv::GaussianBlur(class cv::_InputArray const &,class cv::_OutputArray const &,class cv::Size_<int>,double,double,int)" (?GaussianBlur@cv@@YAXABV_InputArray@1@ABV_OutputArray@1@V?$Size_@H@1@NNH@Z) référencé dans la fonction "class cv::Scalar_<double> __cdecl getMSSIM(class cv::Mat const &,class cv::Mat const &)" (?getMSSIM@@YA?AV?$Scalar_@N@cv@@ABVMat@2@0@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "public: void __thiscall cv::Mat::copySize(class cv::Mat const &)" (?copySize@Mat@cv@@QAEXABV12@@Z) référencé dans la fonction "public: __thiscall cv::Mat::Mat(class cv::Mat const &)" (??0Mat@cv@@QAE@ABV01@@Z)
    1>Test.obj : error LNK2019: symbole externe non résolu "void __cdecl cv::subtract(class cv::_InputArray const &,class cv::_InputArray const &,class cv::_OutputArray const &,class cv::_InputArray const &,int)" (?subtract@cv@@YAXABV_InputArray@1@0ABV_OutputArray@1@0H@Z) référencé dans la fonction "class cv::Mat & __cdecl cv::operator-=(class cv::Mat const &,class cv::Mat const &)" (??Zcv@@YAAAVMat@0@ABV10@0@Z)
    1>D:\Utilisateur\Documents\Visual Studio 2010\Projects\FirstStepOpenCV\Debug\FirstStepOpenCV.exe : fatal error LNK1120: 25 externes non résolus
    1>
    1>ÉCHEC de la build.
    1>
    Quelqu'un voit le problème?

    Merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 33
    Par défaut
    Bonjour,

    Tu décris tes étapes d'installation en détail mais as tu pensé a compiler openCV avec Cmake??
    J'ai fais l'installation d'OpenCV2.4 mais pour Visual Studio 2008 et j'ai du compiler la bibliotheque pour ma solution avant de parametrer mon premier projet.

    Sinon, pour le répertoire opencv\build\x64\vc10\bin. as tu essayé avec x86 des fois que ce soit pas l'autre version?

    Enfin, pour ce qui est des .lib, tu dois les ajouter manuellement au linker (ex : opencv-highgui240.lib ... etc.)

    Voilà, j'espère que ma réponse n'était pas trop à côté de la plaque et que la procédure d'install est bien la même pour Visual 2008 et 2010.
    Bon courage.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    Citation Envoyé par arkeya Voir le message
    Bonjour,

    Tu décris tes étapes d'installation en détail mais as tu pensé a compiler openCV avec Cmake??
    J'ai fais l'installation d'OpenCV2.4 mais pour Visual Studio 2008 et j'ai du compiler la bibliotheque pour ma solution avant de parametrer mon premier projet.
    Comment on compile la bibliothèque? Il n'y avait pas cela dans le tuto, et je crois que le dossier Build saute cette étape. Je me trompe surement.


    Citation Envoyé par arkeya Voir le message
    Sinon, pour le répertoire opencv\build\x64\vc10\bin. as tu essayé avec x86 des fois que ce soit pas l'autre version?
    Je vais essayé de ce pas.

    Citation Envoyé par arkeya Voir le message
    Enfin, pour ce qui est des .lib, tu dois les ajouter manuellement au linker (ex : opencv-highgui240.lib ... etc.)
    Justement le problème c'est que je ne les vois pas dans la fenêtre "Dépendances Supplémentaires", donc je n'arrive pas à les ajouter.

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 33
    Par défaut
    http://opencv.willowgarage.com/wiki/InstallGuide

    Tout est super bien expliqué ici. (c'est en anglais mais la version Fr doit être trouvable sur le net)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Configure using CMake
     
        In general you should:
     
            Create a temporary directory, which we denote as <cmake_binary_dir>, where you want to put the generated Makefiles, Visual Studio, Xcode or Eclipse etc. project files as well the object files and output binaries. You can do it using CMake GUI.
     
            If you use CMake GUI, execute "Configure" to do the initial configuration, then adjust any options, then press "Configure" again and then press "Generate"
    C'est Cmake qui te permet de compiler OpenCV. Tu as un certain nombre de case (en rouge) à coucher/décocher selon ce que tu veux faire avec ton application.

    Pour ce qui est des bibliothèques, je ne me souviens pas qu'il faille les "choisir" mais plutôt entrer leurs noms dans la barre "dependances supplémentaires".

    http://www.youtube.com/watch?feature...&v=TH2w4fB_y0w

    Je ne l'ai pas regardé en entier mais cette video devrait t'aider je pense.
    Bonne continuation

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2010
    Messages : 11
    Par défaut
    J'ai réussi. En fait je ne savais pas qu'il fallait écrire dans les dépendances supplémentaires, je croyais que ça s'affichait et qu'il fallait sélectionner. En tout cas ça marche mieux, il me reste juste un problème de dll introuvable, alors que le path est bon.

    J'ai trouvé ça aussi, où c'était un peu plus clair par rapport au contenu du dossier OpenCV et les libs pré-built.
    http://stackoverflow.com/questions/7...al-studio-2010

    Merci pour tout.

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 33
    Par défaut
    Mais de rien

    Sinon, tu as utilisé Cmake avec Visual 2010 ou pas finalement? Parce que si oui, normalement tu as du générer ta solution dans un fichier à part (fichier de sortie spécifié dans Cmake à la génération) et c'est ce fichier la/include/Debug et fichier/include/Release que tu dois spécifier dans ton PATH pour le lien des dll.

    Tiens moi au courant de ce problème de dll introuvables. Ca vient d'un petit détail d'initialisation à l'install d'OpenCV (l'histoire du bon PATH avec le fichier de sortie de Cmake) je pense.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur LNK2019 avec dépendance lib static
    Par iliak dans le forum C
    Réponses: 0
    Dernier message: 10/03/2014, 20h05
  2. Erreur de lieur avec la librairie OpenCV
    Par pasqual dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/09/2008, 22h28
  3. [cvBlobsLib]Probleme à l'execution avec des erreurs LNK2019
    Par Jim_Nastiq dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 01/03/2007, 14h40
  4. erreur LNK2019 avec propre header.
    Par FamiDoo dans le forum C++
    Réponses: 1
    Dernier message: 02/08/2006, 16h37
  5. erreur LNK2019 avec des fonctions communes.
    Par FamiDoo dans le forum Visual C++
    Réponses: 9
    Dernier message: 31/07/2006, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo