Posez votre question Signaler

Error LNK2019: symbole externe non résolu "ex

Dryko - Dernière réponse le 19 nov. 2009 à 10:04
Bonjour a tous,
J'ai gros probleme : j'ai realiser un projet en c++ en utilisant DevC++ qui marchait tres bien. J'ai du passer a Microsoft Visual C++ 2008 Express et depuis a la compilation, ca me dit que toutes mes fonctions sont foireuses :
1>main_in.obj : error LNK2028: jeton non résolu (0A000014) "extern "C" int __stdcall ioctlsocket(unsigned int,long,unsigned long *)" (?ioctlsocket@@$$J212YGHIJPAK@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2028: jeton non résolu (0A00001A) "extern "C" int __stdcall WSAStartup(unsigned short,struct WSAData *)" (?WSAStartup@@$$J18YGHGPAUWSAData@@@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2028: jeton non résolu (0A00001B) "extern "C" int __stdcall recvfrom(unsigned int,char *,int,int,struct sockaddr *,int *)" (?recvfrom@@$$J224YGHIPADHHPAUsockaddr@@PAH@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2028: jeton non résolu (0A00001E) "extern "C" unsigned long __stdcall htonl(unsigned long)" (?htonl@@$$J14YGKK@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2028: jeton non résolu (0A000024) "extern "C" unsigned short __stdcall htons(unsigned short)" (?htons@@$$J14YGGG@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2028: jeton non résolu (0A00002E) "extern "C" int __stdcall WSACleanup(void)" (?WSACleanup@@$$J10YGHXZ) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2028: jeton non résolu (0A00002F) "extern "C" int __stdcall bind(unsigned int,struct sockaddr const *,int)" (?bind@@$$J212YGHIPBUsockaddr@@H@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2028: jeton non résolu (0A000032) "extern "C" unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2028: jeton non résolu (0A00003A) "extern "C" int __stdcall closesocket(unsigned int)" (?closesocket@@$$J14YGHI@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2019: symbole externe non résolu "extern "C" int __stdcall WSACleanup(void)" (?WSACleanup@@$$J10YGHXZ) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2019: symbole externe non résolu "extern "C" int __stdcall closesocket(unsigned int)" (?closesocket@@$$J14YGHI@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2019: symbole externe non résolu "extern "C" int __stdcall recvfrom(unsigned int,char *,int,int,struct sockaddr *,int *)" (?recvfrom@@$$J224YGHIPADHHPAUsockaddr@@PAH@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2019: symbole externe non résolu "extern "C" int __stdcall ioctlsocket(unsigned int,long,unsigned long *)" (?ioctlsocket@@$$J212YGHIJPAK@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2019: symbole externe non résolu "extern "C" int __stdcall bind(unsigned int,struct sockaddr const *,int)" (?bind@@$$J212YGHIPBUsockaddr@@H@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2019: symbole externe non résolu "extern "C" unsigned short __stdcall htons(unsigned short)" (?htons@@$$J14YGGG@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2019: symbole externe non résolu "extern "C" unsigned long __stdcall htonl(unsigned long)" (?htonl@@$$J14YGKK@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2019: symbole externe non résolu "extern "C" unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>main_in.obj : error LNK2019: symbole externe non résolu "extern "C" int __stdcall WSAStartup(unsigned short,struct WSAData *)" (?WSAStartup@@$$J18YGHGPAUWSAData@@@Z) référencé dans la fonction "int __cdecl main(int,char * * const)" (?main@@$$HYAHHQAPAD@Z)
1>E:\envoie et reception\20080321_reception plusieurs fichiers en UDP\UDP_in\Debug\UDP_in.dll : fatal error LNK1120: 18 externes non résolus

Si quelqu'un sait comment resoudre ce probleme parce que la, ca comment a me souler!!!
Merci d'avance
Lire la suite 

Error LNK2019: symbole externe non résolu "ex »

9 réponses
Réponse
+5
moins plus
J'ai eu les mêmes messages d'erreur LNK 2019 et LNK1120 en essayant, pour mon premier projet VC++ 2008 Express, d'intégrer directement un fichier de code source à partir duquel j'avais déjà généré un exécutable fonctionnant correctement, à partir un autre compilateur (Cygwin), sous forme d'application console.

Alors j'ai essayé autre chose:

créer un projet console sans partir d'un fichier de code source.
Menu "Fichier", "Nouveau", "Projet".
"Types de projets": "Win32".
"Application", "Modèles Visual Studio installés": "Application console Win32".
Entrer le Nom: test, par exemple.
Choisir l'Emplacement.
OK.
Terminer.

On voit que plein de choses sont déjà créées en termes de fichiers (alors qu'on pourrait imaginer le projet vide).
On trouve des fichiers source de code C++ (stdafx.cpp, et un fichier portant le nom du projet: test.cpp), des fichiers d'en-tête (stdafx.h, targetver.h).
C'est qu'une une mini-solution complète a déjà été créée.
On peut la générer, F7.
Ça génère sans erreur.

Si on édite test.cpp, on voit par exemple qu'on n'a pas le prototype habituel de la fonction "main", "int main(void)", mais "int _tmain(int argc, _TCHAR* argv[])" à la place.
Mais on peut remettre "int main(void)" à la place de "int _tmain(int argc, _TCHAR* argv[])", ça génère quand même sans erreur, et ça s'exécute (Ctrl-F5) sans erreur.
L'important c'est, je pense, tous les fichiers supplémentaires qui ont été créés au départ et ce qu'il y a dedans.

J'ai reporté les parties de mon fichier source d'origine et ça génère sans erreur également.
Ça s'exécute exactement comme sous Cygwin.

Il me semble que le lien donné plus haut par eee.eee contient des choses très intéressantes, pourvu qu'on comprenne l'anglais et qu'on se donne la peine de décrypter les messages postés sur ce lien et d'essayer les solutions indiquées.

J'ai écrit ça pour le cas où quelqu'un aurait obtenu ces messages d'erreur LNK 2019 et LNK1120 en essayant de faire la même chose que moi, pour proposer une solution.
carlo01 - 19 nov. 2009 à 10:04
bonjour :)

j ai le meme erreur que toi avec la fonction SnmpStartup() et bin la solution en fin cété d faire ajouter des nouveaux lib : a savoir le snmp32.lib alors verifier que vous avez mi tous les libs necessaires dans library dependencies (Project Properties > Linker > Input > Additional Dependencies). ;)
Ajouter un commentaire
Réponse
+2
moins plus
l'erreur: symbole externe non résolu _main référencé dans la fonction ___tmainCRTStartup

vient du fait qu'il te manque une fonction main dans ton prog...
agellos - 17 avril 2009 à 11:24
Salut,

moi j'ai les mêmes erreurs, LNK2019 et LNK1120, et pourrais tu me dire comment on peut créer un Main stp? JE suis sous Visual C++ 2008 std Ed.

Merci
Ajouter un commentaire
Réponse
+1
moins plus
Tu as relinker ton projet vers des .lib et header? Et attention les lib de Visual Studio sont différentes des .a de DevC++. Il faut reprendre de nouvelles lib ou les recompiler.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

je debute la programation en c et j'ai un petit souci en ce qui concerne la compilation et l'execution de mon projet.
J'utilise visual C++ 2008 express et je me retrouve avec un message le message d'erreur suivant :

1>MSVCRTD.lib(crtexe.obj) : error LNK2019: symbole externe non résolu _main référencé dans la fonction ___tmainCRTStartup
1>C:\Users\kevin\Desktop\Projets\test\Debug\test.exe : fatal error LNK1120: 1 externes non résolus
1>Le journal de génération a été enregistré à l'emplacement "file://c:\Users\kevin\Desktop\Projets\test\test\Debug\BuildLog.htm"
1>test - 2 erreur(s), 0 avertissement(s)
========== Régénération globale : 0 a réussi, 1 a échoué, 0 a été ignoré ==========

pourriez vous m'éclairé svp.
cordialement, silycian.
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Tu devrais aller voir par là:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=14021&SiteID=1
Ajouter un commentaire
Réponse
+0
moins plus
J'ai eu plein d'erreur comme toi silycian..
je sais pas si ton probleme vient de la, mais Express2008 est foireux car il manque de nombreuse biblioteques dont les MFC et c'est pour ca que j'avais plein d'erreur...
desormais je suis retourner sous Visual6.0 et j'ai d'autre erreurs!!!!
anuradha - 17 juil. 2008 à 10:37
in ur code
add

#pragma comment (lib, "Ws2_32.lib")

this will remove the linking errors
Ajouter un commentaire
Ce document intitulé « error LNK2019: symbole externe non résolu "ex » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?