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

VC++ .NET Discussion :

Problème de linkage


Sujet :

VC++ .NET

  1. #1
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut Problème de linkage
    Bonsoir, tout le monde,
    Bon voila je fais actuellement un programme en C++/OpenGL qui utilise la SDL sous Visual C++ 2010 Express . Pourtant , j'ai un problème : Lors de la compilation,
    - Dans la section "C / C++ => Génération de code", j'ai mis "Bibliothèque runtime" à "DLL multithread (/MD)"
    - Dans la section "C/C++ => Avancé", sélectionnez "Compilation sous" et j'ai mis la valeur "Compiler comme code C (/TC)" (sinon visual vous compilera votre projet comme étant du C++).
    - Dans la section "Editeur de liens => Entrée", j'ai modifié la valeur de "Dépendances supplémentaires" pour y ajouter "SDL.lib SDLmain.lib"
    - Dans la section "Editeur de liens => Système", j'ai modifié la valeur de "Sous-système" et mettez-la à "Windows" (capture ci-dessous).


    main.obj : error LNK2019: symbole externe non résolu _FSOUND_Close@0 référencé dans la fonction _SDL_main
    main.obj : error LNK2019: symbole externe non résolu _FSOUND_SetVolume@8 référencé dans la fonction "void __cdecl InitFMod(void)" (?InitFMod@@YAXXZ)
    main.obj : error LNK2019: symbole externe non résolu _FSOUND_Init@12 référencé dans la fonction "void __cdecl InitFMod(void)" (?InitFMod@@YAXXZ)
    math3D.obj : error LNK2019: symbole externe non résolu __imp___CrtDbgReportW référencé dans la fonction "public: char const & __thiscall std::_String_const_iterator<char,struct std::char_traits<char>,class std::allocator<char> >::operator*(void)const " (??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ)
    souris.obj : error LNK2001: symbole externe non résolu __imp___CrtDbgReportW
    textures.obj : error LNK2001: symbole externe non résolu __imp___CrtDbgReportW
    sons.obj : error LNK2019: symbole externe non résolu _FSOUND_Sample_Free@4 référencé dans la fonction "public: __thiscall CSon::~CSon(void)" (??1CSon@@QAE@XZ)
    sons.obj : error LNK2019: symbole externe non résolu _FSOUND_Sample_Load@20 référencé dans la fonction "public: void __thiscall CSon::Charger(int)" (?Charger@CSon@@QAEXH@Z)
    sons.obj : error LNK2019: symbole externe non résolu _FSOUND_PlaySound@8 référencé dans la fonction "public: void __thiscall CSon::Jouer(void)" (?Jouer@CSon@@QAEXXZ)
    sons.obj : error LNK2019: symbole externe non résolu _FSOUND_Stream_Close@4 référencé dans la fonction "public: __thiscall CMusique::~CMusique(void)" (??1CMusique@@QAE@XZ)
    sons.obj : error LNK2019: symbole externe non résolu _FSOUND_Stream_Stop@4 référencé dans la fonction "public: __thiscall CMusique::~CMusique(void)" (??1CMusique@@QAE@XZ)
    sons.obj : error LNK2019: symbole externe non résolu _FSOUND_Stream_Open@16 référencé dans la fonction "public: void __thiscall CMusique::Charger(int)" (?Charger@CMusique@@QAEXH@Z)
    sons.obj : error LNK2019: symbole externe non résolu _FSOUND_Stream_Play@8 référencé dans la fonction "public: void __thiscall CMusique::Jouer(void)" (?Jouer@CMusique@@QAEXXZ)
    I:\Documents ans setting\Visual Studio 2010\Projects\SiteNaturel\Debug\SiteNaturel.exe : fatal error LNK1120: 11 externes non résolus
    ========== Génération*: 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
    Pourriez-vous me dire d'ou viennent ces erreurs et comment les corriger?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 200
    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 200
    Points : 12 354
    Points
    12 354
    Par défaut
    On commence par la première erreur, qui permet très souvent de corriger les autres.

    main.obj : error LNK2019: symbole externe non résolu _FSOUND_Close@0 référencé dans la fonction _SDL_main
    la fonction FSOUND_Close est utilisé dans la fonction _SDL_main du fichier main.c.

    Comme ça compile, les fichiers .h sont bons.
    Cela ne se link pas car la librairie contenant l'implémentation de la fonction "FSOUND_Close" n'est pas donné dans options du linker.

    Si vous avez des doutes, augmentez le niveau de logs de compilation et vous verrez quelles librairies il utilise et où il les trouve.

  3. #3
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut
    J'utilise la librairie fmod pour le son.C'est pour cette raison, il y a FSOUND et ses SOEURS. J'ai ajouté Dans la section "Editeur de liens => Entrée", j'ai modifié la valeur de "Dépendances supplémentaires" pour y ajouter "SDL.lib SDLmain.lib et fmodvc.lib" car il manquait cette librairie. A la compilation, j'ai ces erreurs.

    math3D.obj : error LNK2019: symbole externe non résolu __imp___CrtDbgReportW référencé dans la fonction "public: char const & __thiscall std::_String_const_iterator<char,struct std::char_traits<char>,class std::allocator<char> >::operator*(void)const " (??D?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDXZ)
    souris.obj : error LNK2001: symbole externe non résolu __imp___CrtDbgReportW
    textures.obj : error LNK2001: symbole externe non résolu __imp___CrtDbgReportW
    Je ne sais pas qu'estce-ce veut dire toutes ces erreurs?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 200
    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 200
    Points : 12 354
    Points
    12 354
    Par défaut
    C'est le même problème mais en un peu plus subtile.
    Le message d'erreur montre que l'implémentation de la fonction _CrtDbgReportW appelée dans la méthode operator*(void)const de la classe std::_String_const_iterator lors de la compilation de math3D.c ou math3D.cpp n'a pas été trouvée dans les librairies passées au linker.

    _CrtDbgReportW : http://msdn.microsoft.com/en-us/libr...v=VS.100).aspx

    Cela montre que cette fonction n'existe que dans la version Debug de la C-Runtime.
    En ayant la constante de compilation "DEBUG" définie lors de la compilation, les codes sources compilés utilisent les primitives de debugging comme la fonction _CrtDbgReportW.

    Le problème, c'est que vous êtes au compilateur d'utiliser les fonctionnalité Debug mais que vous donnez au linker que les librairies Release de la C-Runtime.

    Quand vous compilez en Debug, utilisez la "Bibliothèque runtime" en "DLL multithread Debug (/MDd)" (de memoire )

  5. #5
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut
    Bonsoir,

    J'ai lu mais je n'ai pas trouvé de réponse (explication) claire et simple que celle que tu m'a donnée.

    Quand je compile en Debug, j'utilise la "Bibliothèque runtime" en "DLL multithread Debug (/MDd)", le compilateur m'affiche les deux warnings suivants qui n'ont pas d'incidents majeurs sur la compilation.

    MSVCRTD.lib(cinitexe.obj) : warning LNK4098: conflit entre la bibliothèque par défaut 'msvcrt.lib' et les autres bibliothèques*; utilisez /NODEFAULTLIB:library
    MSVCRTD.lib(cinitexe.obj) : warning LNK4098: conflit entre la bibliothèque par défaut 'msvcrt.lib' et les autres bibliothèques*; utilisez /NODEFAULTLIB:library

    SiteNaturel.vcxproj -> I:\Documents and Settings\Visual Studio 2010\Projects\SiteNaturel\Debug\SiteNaturel.exe
    ========== Régénération globale*: 1 a réussi, 0 a échoué, 0 a été ignoré ==========
    Quand je compile en mode Release, j'utilise la "Bibliothèque runtime" en "DLL multithread (/MD)", le compilateur m'affiche ceci:

    Fin de la génération du code
    SiteNaturel.vcxproj -> I:\Documents and Settings\Visual Studio 2010\Projects\SiteNaturel\Release\SiteNaturel.exe
    ========== Régénération globale*: 1 a réussi, 0 a échoué, 0 a été ignoré ==========
    La compilation fonctionne bien dans les deux modes (Debug et Release). A part deux warnings en mode Debug cités au dessus.

    Le problème de la compilation est réglé, mais je rencontre autre un problème lors de l'exécution, voilà ce qui m'affiche lorsque je lance l'exécution sans débogage, il est en pièce jointe.

    Le débogueur m'affiche ces messages d'erreur que j'ai pas compris.

    'SiteNaturel.exe'*: Chargé 'I:\Documents and Settings\Visual Studio 2010\Projects\SiteNaturel\Debug\SiteNaturel.exe', Les symboles ont été chargés.
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\ntdll.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\kernel32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'I:\Documents and Settings\Visual Studio 2010\Projects\SiteNaturel\Debug\SDL.dll', Le fichier binaire n'a pas été généré avec les informations de débogage.
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\advapi32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\rpcrt4.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\secur32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\gdi32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\user32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\msvcrt.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\winmm.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'I:\Documents and Settings\Visual Studio 2010\Projects\SiteNaturel\Debug\fmod.dll', Le fichier binaire n'a pas été généré avec les informations de débogage.
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\msacm32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\ole32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\wsock32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\ws2_32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\ws2help.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\msvcp100d.dll', Les symboles ont été chargés.
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\msvcr100d.dll', Les symboles ont été chargés.
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\opengl32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\glu32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\ddraw.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\dciman32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'I:\Documents and Settings\Visual Studio 2010\Projects\SiteNaturel\Debug\glut32.dll', Le fichier binaire n'a pas été généré avec les informations de débogage.
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\imm32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\wdmaud.drv', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\setupapi.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\wintrust.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\crypt32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\msasn1.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\imagehlp.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Déchargé 'C:\WINDOWS\system32\setupapi.dll'
    'SiteNaturel.exe'*: Déchargé 'C:\WINDOWS\system32\wdmaud.drv'
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\wdmaud.drv', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\setupapi.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Déchargé 'C:\WINDOWS\system32\setupapi.dll'
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\msacm32.drv', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\midimap.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\dsound.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\version.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\setupapi.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Déchargé 'C:\WINDOWS\system32\setupapi.dll'
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\setupapi.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Déchargé 'C:\WINDOWS\system32\setupapi.dll'
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\setupapi.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Déchargé 'C:\WINDOWS\system32\setupapi.dll'
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\uxtheme.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\Documents and Settings\Local Settings\Temp\IadHide4.dll', Le fichier binaire n'a pas été généré avec les informations de débogage.
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\msctf.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\setupapi.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Déchargé 'C:\WINDOWS\system32\setupapi.dll'
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\ksuser.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\msctfime.ime', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\kbdus.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Déchargé 'C:\WINDOWS\system32\kbdus.dll'
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\kbdfr.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Déchargé 'C:\WINDOWS\system32\kbdfr.dll'
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\nvoglnt.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Chargé 'C:\WINDOWS\system32\mcd32.dll', Cannot find or open the PDB file
    'SiteNaturel.exe'*: Déchargé 'C:\WINDOWS\system32\mcd32.dll'
    La bibliothèque Microsoft Visual Studio C Runtime a détecté une erreur irrécupérable dans SiteNaturel.exe.

    Appuyez sur Arrêter pour déboguer le programme ou sur Continuer pour mettre fin au programme.
    Le thread 'Thread Win32' (0x14b8) s'est arrêté avec le code -1073740777 (0xc0000417).
    Le thread 'Thread Win32' (0xe18) s'est arrêté avec le code -1073740777 (0xc0000417).
    Le thread 'Thread Win32' (0x1544) s'est arrêté avec le code -1073740777 (0xc0000417).
    Le thread 'Thread Win32' (0x1548) s'est arrêté avec le code -1073740777 (0xc0000417).
    Le thread 'Thread Win32' (0x13a8) s'est arrêté avec le code -1073740777 (0xc0000417).
    Le programme '[5300] SiteNaturel.exe: Natif' s'est arrêté avec le code -1073740777 (0xc0000417).
    Je précise: la I signifie que c'est le lecteur disque I DDE (Disque Dur Externe) dans lequel j'ai installé le logiciel Visual C++ 2010 Express et le projet SiteNaturel écrit en C++ (OpenGL)

    Le lecteur disque C: le système Windows XP qui est installé.

    Pourriez-vous m'expliquer pourquoi il m'affiche ces erreurs?

Discussions similaires

  1. Code::Blocks sous Linux problème de linkage
    Par JuTs dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 22/03/2006, 17h54
  2. [Code::Blocks] Problème de linkage: "msvcrt.lib"
    Par skhay dans le forum Code::Blocks
    Réponses: 8
    Dernier message: 14/03/2006, 20h39
  3. Plusieurs fichiers => Problème de Linkage
    Par loic911 dans le forum C++
    Réponses: 6
    Dernier message: 01/03/2006, 01h11
  4. Problème de linkage avec la librairie DevIl
    Par Drannor dans le forum DevIL
    Réponses: 1
    Dernier message: 19/01/2006, 00h05
  5. Problème de linkage
    Par lvdnono dans le forum Windows
    Réponses: 4
    Dernier message: 15/06/2004, 13h32

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