hi! ich würde gerne mit dem mingw32 sockets in c oder c++ programmieren. jedoch bekomme ich immer den selben linker error wenn ich simple beispieldateien kompiliere: ll: undefined reference to 'socket@12' kann mir jemand bei diesem problem helfen. ich würde gerne applikationen für win xp schreiben. vielen dank
hi -lwsock32 funktioniert nicht. ich werde vielleicht ein bisschen konkreter mit meinem problem: #include <stdio.h> #include <windows.h> #include <winsock.h> int main(int argc, char *argv[]) { int sock_id=0; sock_id=socket(AF_INET, SOCK_STREAM, 0); printf("Nur zum Testen"); return 0; } dieser code steht in einem c file. wenn ich die datei kompilieren lasse mit mingw32-gcc.exe bekomme ich folgende meldung: "ll: undefined reference to socket@12" habe ich vielleicht die falschen header dateien oder gibt es da noch andere -ls die ich berücksichtigen sollte. luki
der Linker sagt dir das er das Symbol socket@12 nicht finden kann. Vielleicht hast du vergessen ihm die entsprechende Library anzugeben?
hast Du die header winsock.h auch eingebunden, da die socket() methode kein #define ist, ist sie nicht global.
Würde das Problem an einer nicht eingebundenen Headerdatei liegen, wäre die Fehlermeldung eine andere. Die Fehlermeldung aber ist eine des Linkers und besagt, daß dieser die Funktion in keiner der verwendeten Libraries finden kann. Möglicherweise liegt das Problem darin, daß hier eine zur verwendeten Library inkompatible Aufrufkonvention verwendet wird - das dekorierte Symbol socket@12 lässt erkennen, daß nicht die C-Standard-Aufrufkonvention verwendet wird, dann nämlich hieße das Symbol _socket. (So jedenfalls sieht das bei MS-C-Compilern aus). Existiert denn im LIB-Verzeichnis des Compilers überhaupt eine Socket-Library?
Das stimmt doch gar nicht. Es kommt auf den Compiler an. Mein Compiler für das XPS meldet bringt genau diese Meldung wenn ich eine includiert header aus dem projekt ausbinde. Ich kann auch noch viele beispiele nennen wo compiler veschiedenste meldungen bringen für gleiche probleme
Das halte ich für ein Missverständnis. Würde dem Compiler die Deklaration der Funktion "socket" fehlen, würde die Fehlermeldung entsprechendes aussagen. Die hier zitierte Fehlermeldung ist aber eindeutig eine Fehlermeldung des Linkers, nicht des Compilers.
Das entnehme ich dem Präfix "ll" und der Tatsache, daß ein dekorierter Name (eben socket@12) ausgegeben werden.
hi also schön langsam glaub ich, dass man mit dem mingw32 gar keine sockets programmieren kann. als anhang habe seht ihr den compiler output. vielleicht hilfts. normalerweise verwende ich die code::blocks ide. aber bei der sieht mans nicht so schön. das programm ist das gleiche geblieben.
Dein Screenshot zeigt, daß Du offensichtlich keinen der Dir hier gegebenen Ratschläge auch nur gelesen zu haben scheinst - wo bitte ist in Deiner Kommandozeile des gcc-Aufrufs der Hinweis, daß mit der Library zu linken ist, die die Funktion socket enthält? Desweiteren kann man den Inhalt von Konsolenfenstern auch als TEXT in die Zwischenablage kopieren ... da ist kein Screenshot für erforderlich.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.