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

Visual C++ Discussion :

Erreur LNK2019 : symbole externe non résolu


Sujet :

Visual C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 16
    Points
    16
    Par défaut Erreur LNK2019 : symbole externe non résolu
    Bonjour,
    Je suis actuellement en train d'essayer d'utiliser la bibliothèque vl-feat en C++ avec Microsoft Visual Studio 2010 sous Windows 7 afin de faire un HelloWorld :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    extern "C" {
    #include "generic.h"
    }
     
    int main (int argc, const char * argv[]) {
      VL_PRINT ("Hello world!\n") ;
      return 0;
    }
    Je reçois l'erreur suivante : main.obj : error LNK2019: symbole externe non résolu __imp__vl_get_printf_func référencé dans la fonction _main

    Sur les différents forums traitant de cette erreur, les principales causes de cette erreur sont soit des fautes de syntaxe, soit l'absence de certaines informations dans la page des propriétés du projet.

    Voici les différentes méthodes (qui n'ont pas fonctionné) que j'ai essayé afin de régler ce problème :

    -Mettre à jour la variable PATH du système avec le chemin des fichiers .dll de la bibliothèque
    -Dans les propriétés du projet + éditeur de liens + dépendances supplémentaires : indiquer le nom des fichiers .dll
    -Dans les propriétés du projet + VC++ + Répertoires include : indiquer le chemin des fichiers .h
    -Dans les propriétés du projet + VC++ + Répertoires de bibliothèques : indiquer le chemin des fichiers .dll
    -Dans les propriétés du projet + C/C++ + Général + Autres répertoires Include : indiquer le chemin des fichiers .h

    Quelqu'un saurait-il comment régler ce problème ou comment facilement utiliser vlfeat en C++ sur windows 7 avec microsoft visual studio 2010

    ps : le tutoriel officiel de vlfeat : http://www.vlfeat.org/vsexpress.html ne m'a pas aidé

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 575
    Points
    41 575
    Par défaut
    Ce qui te manque, c'est de référencer la bibliothèque statique d'importation (un fichier .lib) qui indique au projet que telle fonction se trouve dans telle DLL.
    C'est à rajouter dans les options d'édition de liens (linker).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    Je viens de me rendre compte que je m'étais légèrement trompé lors de l'explication des solutions que j'ai testé :

    -Dans les propriétés du projet + éditeur de liens + entrée + dépendances supplémentaires : indiquer le nom des fichiers .lib

    Est-ce la référence à la bibliothèque statique d'importation à laquelle tu faisais allusion?

    Si c'est le cas, le code ne compile toujours pas

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    Finalement je suis parvenu à faire compiler mon code : une bête histoire de 32bit / 64bit : j'avais misen place une application Win32 en utilisant les fichiers .lib et .dll pour une application 64bits (je suis une bouse ).

    Par contre, lorsque je tente d’exécuter le programme j'ai le doit à une belle erreur : L'application n'a pas réussi à démarrer correctement (0xc000007b).
    Quelqu'un saurait d'où viens cette erreur?

    PS : Dois-je créer une nouvelle discussion pour parler de ce nouveau problème?

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 157
    Points : 12 271
    Points
    12 271
    Par défaut
    https://msdn.microsoft.com/en-us/lib...or=-2147217396
    Moi, j'ai l'impression que vous avez essayé de mettre des ronds dans des carrés et que ça vient de vous pétez à la gueule.
    Utilisez dependency walker pour voir où ça merde.
    http://www.dependencywalker.com/

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    En effet, en utilisant Dependency pour ouvrir le fichier dll j'ai droit à 6 : Error opening file. Le fichier spécifié est introuvable. Je vais essayer de voir d'où cela peut venir.

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 157
    Points : 12 271
    Points
    12 271
    Par défaut
    Dependency est assez limité sur le chargement des Dll.
    Faut dire que les chemins de chargement des Dll dans Windows, c'est un bon gros merdier.

    Il faut donc faire assez attention aux messages d'erreur de Dependency, c'est pas parole d'évangile mais ça permet de se poser de bonnes questions.

    Elles ressemblent à quoi les dll manquantes ?

    L'eventViewer Windows devrait avoir des détails qui permettraient d'affiner la recherche.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 16
    Points
    16
    Par défaut
    Veuillez m'excuser pour ma réponse tardive, au final malgré les messages renvoyés par Dependency mon code fonctionne, il m'a suffit de m'y reprendre calmement au niveau de la définition des emplacements des différents fichiers .h , .lib et .dll et de bien faire attention au 32/64bits.
    Merci pour vos réponses et votre aide

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/03/2013, 11h11
  2. error LNK2019: symbole externe non résolu
    Par bugmenot dans le forum Visual C++
    Réponses: 6
    Dernier message: 24/11/2009, 01h02
  3. error LNK2019: symbole externe non résolu "void __cdecl MaFonction
    Par lolo le belge dans le forum Visual C++
    Réponses: 3
    Dernier message: 30/10/2009, 11h38
  4. LNK2019: symbole externe non résolu __ftol2_sse
    Par ellipse dans le forum MFC
    Réponses: 1
    Dernier message: 26/04/2006, 23h48
  5. LNK2019 symbole externe non résolu
    Par devmat dans le forum MFC
    Réponses: 3
    Dernier message: 04/01/2006, 00h14

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