Auflösen externer Verweise
-
Ich bekomme immer die Fehlermeldung:
error LNK2001: Nichtaufgelöstes externes Symbol "unsigned int __stdcall _socket(int,int,int)" (?_socket@@$$J212YGIHHH@Z)
beim Verlinken (nach dem Kompilieren) in der obj-Datei.
Wie kann ich den Funktionsaufruf auflösen und somit diesen Fehler beseitigen.#define AF_INET 2 /* internetwork: UDP, TCP, etc. */ #define SOCK_STREAM 1 /* stream socket */ void WinMain(){ unsigned int __stdcall socket (int af, int type, int protocol); unsigned int iClient; iClient = socket (AF_INET, SOCK_STREAM, 0); }
Ohne den Aufruf __stdcall (also: unsigned int socket (int af, int type, int protocol) erfolgt die gleiche Fehlermeldung.
-
Ws2_32.lib gelinkt ?!
-
Nein!
Wie verlinke ich eine Libary zum Programm.
-
Falk2003 schrieb:
Nein!
Wie verlinke ich eine Libary zum Programm.
Sag mal welchen Compiler du hast!
Wenns der MSVC ist -> Projekt -> Einstellungen -> Linker -> Unter Module dann auch noch diese Libary eintragen.
MfG SideWinder
-
Ich hab Ws2_32.lib jetzt angefügt. Sie wird auch in den Optionen des Linkers angezeigt, aber die Errormeldung ist die selbe.
-
Ich hab jetzt mein Progrämmchen ein wenig verändert.
#define AF_INET 2 /* internetwork: UDP, TCP, etc. */ #define SOCK_STREAM 1 /* stream socket */ extern "C" { unsigned int __stdcall socket(int af, int type, int protocol); } void WinMain(){ unsigned int iClient; iClient = socket (AF_INET, SOCK_STREAM, 0); }
Jetzt funktioniert das Verlinken beim Debuggen, aber beim Verlinken vom Release
kommt immer noch die Fehlermeldung:
error LNK2001: Nichtaufgelöstes externes Symbol "unsigned int __stdcall socket(int,int,int)" (?socket@@$$J212YGIHHH@Z)
-
Dann hast do wohl irgend etwas falsch gemacht (beim Eintragen der lib zum Linken)
-
Du musst die lib auch in der Release-Version eintragen.
-
Wie trage ich die lib in die Release-Version ein?
-
Genau so wie in der Debug-Version
Wenn du die jeweils andere Version einstellst kommt imho bei den Einstellungen automatisch die für den jeweiligen Modus
-
Okidoki. Ich hab's gefunden. Es funktioniert!
Vielen Dank an alle.Falk2003