Bei einem Compiler gehts, beim andern nicht.
-
Hi, ich habe ein Problem mit Winsock:
#include <stdio.h> #include <windows.h> #include <winsock2.h> #include <stdlib.h> int main(int argc, char *argv[]) { long rc; WSADATA wsa; SOCKET s; SOCKADDR_IN addr; rc=WSAStartup(MAKEWORD(2,0), &wsa); if (rc!=0) { printf("ERROR WSASTARTUP() code: %d\n", rc);} s=socket(AF_INET, SOCK_STREAM, 0); return 0; }
Beim Compiler lcc-win32 geht es fehlerfrei zu kompilieren und auszuführen.
Wenn ich es jedoch mit Dev-C++ versuche bekomme ich folgende Fehler:
[Linker error] undefined reference to
WSAStartup@8' [Linker error] undefined reference to
socket@12'Ich hoffe mir kann einer helfen
!!!
-
Der Linker findet die Definitionen der beiden Funktionen nicht, normalerweise werden sie dem Linker mit einer sogenannten Library-Datei (*.lib) bekannt gegeben, indem diese "mitgelinkt" wird. In deinem Fall müsste es wsock32.lib sein. Sag also deinem Compiler irgendwie, dass er diese Datei mitlinken soll.
-
Ja und wie? und wieso linkt der dat nicht mit?
-
Dieser Thread wurde von Moderator/in flenders aus dem Forum WinAPI in das Forum Andere Compiler verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
XFame schrieb:
Ja und wie?
doku
projekt --> projekt optionen --> parameter --> linker --> "-lwsock32"
-
Thx hat geklappt, aber wieso muss ich das mitlinken, alle anderen Compiler linken das doch auch default mit?
-
XFame schrieb:
Beim Compiler lcc-win32 geht es fehlerfrei zu kompilieren und auszuführen.
bis dato kannte ich noch keinen.
bei vc, gcc, mingw musst du mitlinken