MinGW/GCC: Sockets unter Vista (undefined reference...)



  • Moin,

    heute wollte ich mich mal an die Netzwerkprogrammierung unter Vista mit GCC/MinGW wagen. Jedoch habe ich ein klitze kleines Problem mit der Includierung das ich auch mit viel googlen nicht lösen konnte.

    Das meldet GCC, wenn ich versuche das Programm zum compilen:

    (.text+0x150): undefined reference to WSAStartup@8' (.text+0x1ca): undefined reference tosocket@12'
    (.text+0x20a): undefined reference to inet_addr@4' (.text+0x23e): undefined reference tohtons@4'
    (.text+0x25f): undefined reference to connect@12' (.text+0x2f9): undefined reference tosend@16'
    (.text+0x329): undefined reference to recv@16' (.text+0x3ee): undefined reference toclosesocket@4'
    collect2: ld returned 1 exit status

    Includiert habe ich:

    #include <Windows.h>
    #include <Winsock2.h>
    #include <io.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    

    Und der Compileraufruf sieht so aus:

    gcc -Wall -o test.exe test.c

    Dass das ein Problem beim Linken & Co ist, ist mir schon so weit klar. Aber ich weis nicht warum und komme auch nicht darauf.
    Mag mir jemand bei diesem Problem helfen?

    Schon mal vielen Dank.

    Gruß,
    KörperKlaus



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hallo,

    Du musst die entsprechende Library angeben, ich glaube "-lws2_32", und ich würde zusätzlich zu -Wall noch folgende Parameter empfehlen -Wextra und -pedantic (d.h. noch mehr Warnungen vom Compiler 😉 ):

    gcc -Wall -Wextra -pedantic -o test.exe test.c -lws2_32
    

    Hoffe, es funktioniert unter Vista, habe nämlich nur XP...



  • Und dann vielleicht doch noch ein beherztes -O2.



  • abc.w schrieb:

    Hallo,

    Du musst die entsprechende Library angeben, ich glaube "-lws2_32", und ich würde zusätzlich zu -Wall noch folgende Parameter empfehlen -Wextra und -pedantic (d.h. noch mehr Warnungen vom Compiler 😉 ):

    gcc -Wall -Wextra -pedantic -o test.exe test.c -lws2_32
    

    Hoffe, es funktioniert unter Vista, habe nämlich nur XP...

    Hmm, das mit dem "-lws2_32" hatte ich auch ausprobiert - jedoch half das nicht.
    Da muss ich mich wohl verschrieben haben 😃

    Danke euch zwei 🙂


Anmelden zum Antworten