Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur LNK2001 : Editeur de lien

Visual Studio/Window 10

Sujet résolu
    6 août 2020 à 21:56:37

    Bonjour à tous

    je viens parce que j'ai un problème et que je n'ai pas le moindre idée de comment la résoudre, je suis sous Visual Studio, je viens de réinstaller le tout et une librairie (la SFML)...Mais malgré le fait que j'ai fais ça des dizaines de fois du 1er coups...Aujourd'hui, après avoir réinstallé le tout pour cause de problème de HDD..Bref

    Voici l'erreur : 

    LINK : error LNK2001: symbole externe non résolu _sfml-system-d.lib;sfml-audio-d.lib;sfml-graphics-d.lib;sfml-window-d.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;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;

    Pour ce qui concerne de l'installation, j'ai fait comme pour ce TUTO officiel Pour la doc aussi

    J'ai revérifié les dll 36 fois, pareil pour les dépendance additionnelles...Enfin bref, merci de m'éclairer !

    EDIT : je viens de voir qu'il manque le code (extrêmement simpliste pour le test)  :

    #include <iostream>
    #include <SFML/Graphics.hpp>
    #include <SFML/Window.hpp>
    #include <SFML/System.hpp>
    
    int main()
    {
    	sf::RenderWindow rWindow(sf::VideoMode(900,900),"Test");
    
    	while (rWindow.isOpen())
    	{
    		rWindow.display();
    		rWindow.clear();
    	}
    
    
    	return 0;
    }



    -
    Edité par DeveCout 11 août 2020 à 0:29:15

    • Partager sur Facebook
    • Partager sur Twitter
      6 août 2020 à 22:25:32

      Vous avez tronqué le message d'erreur.

      Il manque une lib ou vous utilisez une mauvaise version de cette lib qui devrait contenir le symbole manquant.

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        6 août 2020 à 22:46:09

        Pourtant j'utilise bien la version de Visual C++ (2017) 2.5.1 présente ici et toutes les lib ont été donné lors de la création du projet (sfml-window-d.lib etc...). Et j'ai bien respecté la différence entre Debug et Release, que les 2 ne possède pas les mêmes fichier/chemin/...(enfin la liaison aux bibliothèques).

        Edit : Il y aussi plein d'erreur LNK2019 après, mais d'après la doc il faut déjà régler la LNK2001 avant de régler celle-ci

        -
        Edité par DeveCout 6 août 2020 à 22:47:38

        • Partager sur Facebook
        • Partager sur Twitter
          6 août 2020 à 23:54:39

          Donnez les 5 premiers messages d'erreurs COMPLETS et les 5 premiers warning, dans l'ordre, SVP.
          • Partager sur Facebook
          • Partager sur Twitter
          Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
            7 août 2020 à 0:25:20

            Voici pour les 5 messages d'erreur : 

            1>LINK : error LNK2001: symbole externe non résolu _sfml-system-d.lib;sfml-audio-d.lib;sfml-graphics-d.lib;sfml-window-d.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;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;
            1>main.obj : error LNK2019: symbole externe non résolu __imp___calloc_dbg référencé dans la fonction "char * __cdecl std::_Maklocstr<char>(char const *,char *,struct _Cvtvec const &)" (??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z)
            1>main.obj : error LNK2019: symbole externe non résolu _memcpy référencé dans la fonction _wmemcpy
            1>main.obj : error LNK2019: symbole externe non résolu __imp__wcslen référencé dans la fonction "wchar_t * __cdecl std::_Maklocwcs(wchar_t const *)" (?_Maklocwcs@std@@YAPA_WPB_W@Z)
            1>main.obj : error LNK2019: symbole externe non résolu _strlen référencé dans la fonction "char * __cdecl std::_Maklocstr<char>(char const *,char *,struct _Cvtvec const &)" (??$_Maklocstr@D@std@@YAPADPBDPADABU_Cvtvec@@@Z)

            En revanche je ne vois pas de quoi vous voulez parlez lorsque vous parlez de "warning", je crois n'avoir que ça ^^', mais si je me trompe et qu'il s'agit juste d'un petit onglet perdu je veux bien savoir ou il est, merci ^^



            • Partager sur Facebook
            • Partager sur Twitter
              7 août 2020 à 3:24:47

              Ok.

              Il y a une couille dans la configuration de votre Visual Studio.

              Vérifiez dans votre projet (click droit sur le projet dans l'Explorateur de Solution) "Propriétés-> Propriétés de Configuration->Répertoires VC++->Répertoires de bibliothèques".

              Il doit contenir la liste des répertoires où chercher les ".lib".

              Chez moi, c'est "$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86"

              "$(xxx)" est la valeur de la variable d'environnement "xxx".

              Là, même les librairies de bases ne sont même pas trouvées.

              • Partager sur Facebook
              • Partager sur Twitter
              Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                7 août 2020 à 8:41:26

                Moi ce qui me turlupine c'est le message d'erreur. Normalement VS dit « symbole externe non résolu NomDeLaFonction » et pas le nom de la bibliothèque elle même.
                • Partager sur Facebook
                • Partager sur Twitter

                git is great because Linus did it, mercurial is better because he didn't.

                  7 août 2020 à 20:35:40

                  Apres en temps normal mon VS est sur le Disque D:/, mais quand je l'ai réinstallé il s'est automatiquement mis sur le C:/...Je n'ai pas cherché à comprendre je me suis dit qu'il savais ce qu'il faisait mais bon, est-ce possible que ce soit ça le problème ?

                  EDIT : 

                  bacelar a écrit:

                  Vérifiez dans votre projet (click droit sur le projet dans l'Explorateur de Solution) "Propriétés-> Propriétés de Configuration->Répertoires VC++->Répertoires de bibliothèques".

                  Il doit contenir la liste des répertoires où chercher les ".lib".

                  Chez moi, c'est "$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);$(NETFXKitsDir)Lib\um\x86"

                  Moi j'ai ceci :

                  $(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86)





                  -
                  Edité par DeveCout 7 août 2020 à 22:54:06

                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 août 2020 à 22:52:11

                    Vérifiez les "Répertoires de bibliothèques" et les variables d'environnement associées.
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                      7 août 2020 à 23:19:53

                      Euh.....J'ai pas du tout compris ce que je dois vérifier..Désolé ^^'

                      • Partager sur Facebook
                      • Partager sur Twitter
                        8 août 2020 à 18:34:09

                        A partir de quand vous ne comprenez pas ?

                        Vous allez dans l'explorateur de solution, vous faites un click droit sur le projet, sélectionnez l'élément du menu "Propriétés" etc...

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                          10 août 2020 à 16:31:46

                          Bah je comprend pas ce que vous voulez que je fasse lorsque vous me dites 'Vérifiez les répertoires de bibliothèques, je ne connais ABSOLUMENT rien à ça :/. Je vous ais donné ce qu'il y avais de marqué mais alors le pourquoi du comment...Je ne comprend strictement rien à ça ^^'
                          • Partager sur Facebook
                          • Partager sur Twitter
                            10 août 2020 à 18:56:19

                            Je n'avais pas vu votre mise à jour du "7 août 2020 à 22:54:06" du message du "7 août 2020 à 20:35:40".

                            Visual Studio donne "l'expansion en ligne" des variables d'environnement dans la zone "Valeur évaluée".

                            C'est une liste de répertoires dans le système de fichier. Tous les .lib utilisés dans les paramètres de l'éditeur de lien doivent être dans l'un de ces répertoires.

                            Mais la remarque de @markand me fait aussi tiquer.

                            C'est peut-être un problème de formatage dans le paramètre "Propriétés-> Propriétés de Configuration->Editeur de liens->entrée->Dépendances supplémentaires". Vous avez peut-être entouré la liste de .lib avec des guillemets, et il faut pas.

                            Pouvez-vous poster la valeur de "Propriétés-> Propriétés de Configuration->Editeur de liens->Ligne de commande->Toutes les options" ?

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                              11 août 2020 à 0:26:31

                              Alors j'ai vérifié et il n'y a aucune guillemets dans les "Dépendances supplémentaires", Voici pour la ligne de commande :

                              "Debug" : 

                              /OUT:"D:\_Programmation\Projets\LoadingScreen\Debug\LoadingScreen.exe" /MANIFEST /NXCOMPAT /PDB:"D:\_Programmation\Projets\LoadingScreen\Debug\LoadingScreen.pdb" /DYNAMICBASE "sfml-system-d.lib" "sfml-audio-d.lib" "sfml-graphics-d.lib" "sfml-window-d.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" /DEBUG /MACHINE:X86 /ENTRY:"sfml-system-d.lib;sfml-audio-d.lib;sfml-graphics-d.lib;sfml-window-d.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;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;" /INCREMENTAL /PGD:"D:\_Programmation\Projets\LoadingScreen\Debug\LoadingScreen.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Debug\LoadingScreen.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"D:\_Programmation\SFML\lib" /TLBID:1 


                              "Release" : 

                              /OUT:"D:\_Programmation\Projets\LoadingScreen\Release\LoadingScreen.exe" /MANIFEST /LTCG:incremental /NXCOMPAT /PDB:"D:\_Programmation\Projets\LoadingScreen\Release\LoadingScreen.pdb" /DYNAMICBASE "sfml-system.lib" "sfml-audio.lib" "sfml-graphics.lib" "sfml-window.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" /DEBUG /MACHINE:X86 /ENTRY:"sfml-system.lib;sfml-audio.lib;sfml-graphics.lib;sfml-window.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;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;" /OPT:REF /SAFESEH /INCREMENTAL:NO /PGD:"D:\_Programmation\Projets\LoadingScreen\Release\LoadingScreen.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"Release\LoadingScreen.exe.intermediate.manifest" /OPT:ICF /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"D:\_Programmation\SFML\lib" /TLBID:1 

                              Voilà voilà, le nom du Projet c'est "Loading screen" (je voulais juste faire 2 3 experiences comme ça)...Voilà voilà je ne m'y connais pas du tout dedans mais je vois un error report à la fin de chaque, mais je ne le comprend pas

                              • Partager sur Facebook
                              • Partager sur Twitter
                                11 août 2020 à 2:20:14

                                OK.

                                Votre "/ENTRY:" est complètement fausse.

                                Allez dans "Propriétés-> Propriétés de Configuration->Editeur de liens->Avancé->Point d'entrée", ici, on spécifie le nm de la fonction d'entré du programme si ce n'est pas "main" (ou WinMain).

                                Je pense que la valeur qui y est spécifiée n'a pas de sens. ;)

                                • Partager sur Facebook
                                • Partager sur Twitter
                                Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                  12 août 2020 à 12:46:59

                                  Voici ce que j'ai dans la configuration debug : 

                                  sfml-system-d.lib;sfml-audio-d.lib;sfml-graphics-d.lib;sfml-window-d.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;%(AdditionalDependencies)

                                  Et il s'agit de celle-ci pour la configuration release :

                                  sfml-system.lib;sfml-audio.lib;sfml-graphics.lib;sfml-window.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;%(AdditionalDependencies)


                                  Je n'y comprend pas grand chose non plus, quand je créais mes Projets avant j'vais un Bloc-note dans lequel j'avais copié collé les points d'entrée pour ne plus avoir à les retaper à chaque fois....Tout marchait super bien jusqu'à ce changement de disque dur :/

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    12 août 2020 à 12:54:45

                                    Vous confondez :

                                    - "Propriétés-> Propriétés de Configuration->Editeur de liens->Avancé->Point d'entrée"

                                    - "Propriétés-> Propriétés de Configuration->Editeur de liens->entrée->Dépendances supplémentaires"

                                    "Propriétés-> Propriétés de Configuration->Editeur de liens->Avancé->Point d'entrée" devraient être VIDES.

                                    Les valeurs dans "Propriétés-> Propriétés de Configuration->Editeur de liens->entrée->Dépendances supplémentaires" devraient contenir les valeurs que vous donnez dans votre dernier post.

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
                                      12 août 2020 à 13:03:16

                                      PARFAIT TOUT FONCTIONNE !

                                      Effectivement j'avais bien eu un malentendu sur les points d'entrées et les entrées, merci à toi en tout cas ;)

                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Erreur LNK2001 : Editeur de lien

                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                      • Editeur
                                      • Markdown