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

C Discussion :

Erreur LNK2019 lors de la compilation


Sujet :

C

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut Erreur LNK2019 lors de la compilation
    Bonsoir,


    J'ai modifié le main() d'un projet en ajoutant une nouvelle fonction,

    A la compilation j'ai cette erreur:

    "error lnk2019 unresolved external symbol <fonction>..."

    D'où cela peut provenir?

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Difficile à dire sans code mais il te manque probablement une bibliothèque (*.lib) à passer au linker (éditeur de liens).

    Linker Tools Error LNK2019:
    http://msdn.microsoft.com/en-us/libr...VS.100%29.aspx

    Aurais-tu un bout de code minimum qui reproduise ton problème ?

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    Cela va etre difficile pour moi de donner un bout de code

    J'ai juste modifier un fichier, pourquoi devrait manquer une bibliothère?


    L'erreur complète est la suivante:
    Linking executable.exe...
    toto.lib(main.obj) : error LNK2019: unresolved external symbol function2 ref
    erenced in function main1

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    Code avant la modification:

    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
    #if TOTO_LIB
    void Main1 (void)
    #else
    #if _include_DEBUG == ON
        void main2(int argc, char *argv[])
    #else
        void main3(void)
    #endif
    #endif
    {
     
     
    #if _include_DEBUG == ON
        function1(argc, argv);
    #endif
    code après la modification:

    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
    #if TOTO_LIB
    void Main1 (void)
    #else
    #if _include_DEBUG == ON
        void main2(int argc, char *argv[])
    #else
        void main3(void)
    #endif
    #endif
    {
     
     
    #if _include_DEBUG == ON
        function1(argc, argv);
    #else
        function2();
    #endif
    l'erreur se produit sur "function2"

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 395
    Points : 23 758
    Points
    23 758
    Par défaut
    Dans ce cas, il n'y a rien de mystérieux. Une fonction nommée « fonction1 » existe bel et bien quelque part dans ton code, mais il n'y a pas de « fonction2 ».

    Le compilateur accepte de compiler le programme quand même en laissant « en blanc » les appels manquants, en supposant que cette fonction se trouve dans une bibliothèque externe, et laisse le soin au linker de combler ces trous lorsqu'il assemblera tous les éléments ensemble. À ce stade, le linker ne trouve aucune fonction nommée « fonction2 » dans les différentes bibliothèques et ne peut donc finaliser l'exécutable.

    À moins, bien sûr, que « fonction1 » et « fonction2 » soient des noms que tu aies inventé pour éviter de révéler les vrais appels sur le forum, auquel cas ça risque d'être dur de t'aider.

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2009
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 204
    Points : 70
    Points
    70
    Par défaut
    Au fait le fichier où se trouve définit la function2, et même la function1 n'est pas compilé...

    Avant la modification, comme _include_DEBUG était toujours différent de ON, je ne rentrai pas dans la fonction1, donc pas de compilation du fichier en question et donc pas de problème de link.

    Le problème vient de là à mon avis

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

Discussions similaires

  1. Erreur LNK2019 lors de la création d'une DLL
    Par Orhleil dans le forum Visual C++
    Réponses: 2
    Dernier message: 10/12/2011, 01h03
  2. Erreur linkage lors de la compilation d'OpenSSL
    Par Fooshi dans le forum Visual Studio
    Réponses: 1
    Dernier message: 01/12/2010, 17h18
  3. [Erreur fatale] lors de la compilation
    Par GSXR1000 dans le forum EDI
    Réponses: 3
    Dernier message: 27/10/2008, 22h38
  4. Réponses: 1
    Dernier message: 18/06/2008, 13h12
  5. Forms 6i : Erreur interne lors de la compilation
    Par Veve44 dans le forum Forms
    Réponses: 4
    Dernier message: 10/10/2005, 14h22

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