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 :

Erreurs de link sur des fonctions C


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 112
    Par défaut Erreurs de link sur des fonctions C
    Bonjour,
    J'ai des erreurs de link en mode release et pas en mode debug. Je ne sais pas quoi ajouter comme fichier .lib pour résoudre le problème.
    Pourriez m'aidez ?

    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
    1>LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/LTCG' specification
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp_fputc
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp_fflush
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp_fclose
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp_fgetc
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp__unlock_file
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp__lock_file
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp_fwrite
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp_fgetpos
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp_setvbuf
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp_ungetc
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp_fsetpos
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp_fread
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp__fseeki64
    1>D3D11Rendering.obj : error LNK2001: unresolved external symbol __imp__get_stream_buffer_pointers
    1>MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _configure_narrow_argv
    1>MSVCRT.lib(exe_winmain.obj) : error LNK2001: unresolved external symbol _configure_narrow_argv
    1>MSVCRT.lib(utility.obj) : error LNK2001: unresolved external symbol _initialize_narrow_environment
    1>MSVCRT.lib(exe_winmain.obj) : error LNK2001: unresolved external symbol _initialize_narrow_environment
    1>MSVCRT.lib(exe_winmain.obj) : error LNK2001: unresolved external symbol _set_app_type
    1>MSVCRT.lib(exe_winmain.obj) : error LNK2001: unresolved external symbol _get_narrow_winmain_command_line
    1>MSVCRT.lib(exe_winmain.obj) : error LNK2001: unresolved external symbol _set_fmode
    1>MSVCRT.lib(exe_winmain.obj) : error LNK2001: unresolved external symbol __p__commode
    1>H:\GameDevelopment\3DEngines\MagiciansGames\DirectX 11 Engine\Release Version\SebsEngineDX11.exe : fatal error LNK1120: 20 unresolved externals
    1>Done building project "SebsEngineDX11.vcxproj" -- FAILED.
    ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    C'est extrêmement bizarre: Les premières erreurs suggèrent que tu n'es pas lié à la MSVCRT.lib, alors que la seconde moitié suggère que si (mais pas forcément la bonne).
    Cette page suggère que ces fonctions ont été déplacées vers de nouvelles bibliothèques vcruntime.lib et libucrt.lib.

    Regarde tes options d'édition de liens, car tu ne devrais pas avoir besoin de lier ces bibliothèques "toi-même". Il devrait le faire tout seul à moins que tu n'aies une raison valide d'utiliser /NODEFAULTLIB.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 112
    Par défaut
    J'avais déjà mis les chemins vers les dossiers qui contiennent ces .lib.
    Je ne sais pas trop où chercher, quelqu'un aurait il une idée ?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Poste la section "command line" de tes options d'édition de liens, qu'on ait une idée de l'état de ton projet.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 112
    Par défaut
    Command line en mode realease :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /OUT:"H:\3DEngines\DirectX 11 Engine\Release Version\SebsEngineDX11.exe" /MANIFEST /LTCG /NXCOMPAT /PDB:"H:\3DEngines\DirectX 11 Engine\Release Version\SebsEngineDX11.pdb" /DYNAMICBASE "xinput.lib" "DXGI.lib" "DirectXTex.lib" "D3DCompiler.lib" "D3DX11.lib" "D3D11.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" "fmod_X64.lib" "fmodL_X64.lib" "legacy_stdio_definitions.lib" "msvcprt.lib" "MSVCRT.lib" "User32.lib" /MACHINE:X64 /OPT:REF /INCREMENTAL /PGD:"H:\3DEngines\DirectX 11 Engine\Release Version\SebsEngineDX11.pgd" /SUBSYSTEM:WINDOWS /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"H:\3DEngines\DirectX 11 Engine\Release Version\Obj\SebsEngineDX11.exe.intermediate.manifest" /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"C:\Program Files (x86)\Visual Leak Detector\lib\Win64" /TLBID:1
    Command line en mode debug ( qui compile correctement ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /OUT:"H:\3DEngines\DirectX 11 Engine\Debug Version\SebsEngineDX11.exe" /MANIFEST /LTCG /NXCOMPAT /PDB:"H:\3DEngines\DirectX 11 Engine\Debug Version\SebsEngineDX11.pdb" /DYNAMICBASE "xinput.lib" "msvcprtd.lib" "User32.lib" "DXGI.lib" "DirectXTex.lib" "D3DCompiler.lib" "D3DX11.lib" "D3D11.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" "fmod_X64.lib" "fmodL_X64.lib" /DEBUG /LTCG:NOSTATUS /MACHINE:X64 /INCREMENTAL /PGD:"H:\3DEngines\DirectX 11 Engine\Debug Version\SebsEngineDX11.pgd" /SUBSYSTEM:WINDOWS /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"H:\3DEngines\DirectX 11 Engine\Debug Version\Obj\SebsEngineDX11.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"C:\Program Files (x86)\Visual Leak Detector\lib\Win64" /TLBID:1

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Tu ne devrais pas avoir besoin de référencer explicitement "msvcrt.lib" et "msvcprt.lib".
    Vérifie que ta ligne de commande de compilation comporte bien l'option /MD ou /MT:
    Configuration Properties -> C/C++ -> Code Generation -> Runtime Library -> soit "Multi-threaded DLL (/MD)" soit "Multi-threaded (/MT)"
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 112
    Par défaut
    J'ai enlevé "msvcrt.lib" et "msvcprt.lib" et j'ai vérifier ce que tu m'as dit, Runtime Library est positionné sur "Multi-threaded DLL (/MD)" . J'ai toujours les mêmes erreurs.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 394
    Par défaut
    Dans ce cas, je ne vois pas pourquoi ça ne cherche pas les bonnes libs.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Tu utilises un IDE ?
    Tu ferais mieux de recréer un nouveau projet propre et y mettre tes fichiers. Ce devrait magiquement résoudre ton problème.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  10. #10
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 112
    Par défaut
    Oui je pense aussi, le .sln date d'une version de visual studio qui est plus ancienne. Peut être que le passage à une version plus récente a créé ce problème.
    Merci pour vos aides.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/12/2006, 16h54
  2. Réponses: 16
    Dernier message: 15/05/2006, 14h49
  3. erreur PLS-00103 sur une fonction
    Par atruong dans le forum Oracle
    Réponses: 2
    Dernier message: 28/04/2006, 13h49
  4. Pointeur sur des fonctions membres d'une classe
    Par Muetdhiver dans le forum C++
    Réponses: 3
    Dernier message: 15/02/2006, 11h35
  5. [ORACLE 8i] Index sur des fonctions
    Par miloux32 dans le forum Oracle
    Réponses: 1
    Dernier message: 02/02/2006, 17h52

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