Dev-Cpp bricht mit [Linker error] undefined reference to `WSAStartup@8' ab



  • Hi,beim Kompilieren von folgendem Code:

    #include <windows.h>
    #include <winsock2.h>
    #include <stdio.h>
    using namespace std;
    
    int startWinsock(void)
    
    {
    
      WSADATA wsa;
    
      return WSAStartup(MAKEWORD(2,0),&wsa);
    
    }
    
    //Prototyp
    int startWinsock(void);
    
    int main()
    
    {
    
      long rc;
    
      rc=startWinsock();
    
      if(rc!=0)
    
      {
    
        printf("Fehler: startWinsock, fehler code: %d\n",rc);
    
        return 1;
    
      }
    
      else
    
      {
    
        printf("Winsock gestartet!\n");
    
      }
    
      return 0;
    
    }
    

    kommt bei meinem Dev-Cpp folgende Meldung:

    [Linker error] undefined reference to `WSAStartup@8'
    

    Weiß wer an was das liegt?

    Danke,
    Xalon



  • Geh auf Projekt->Projekt Optionen
    Oben auf Parameter und unter Linker -lws2_32 eintragen



  • Bedeuted?



  • Die Symbole die fehlen (undefine reference) sind bei winscok2 in libws2_32.a und die kann man bei MinGW(der Compiler vom DevCpp) mitlnken mit der Option -lws2_32



  • hast du ne Windows Application erstellt ??



  • Möchte mich an dieser Stelle mal mit meiner eigenen Frage einklinken, macht ja wenig Sinn dafür einen neuen Thread aufzumachen:
    Habe den obenstehenden Code jetzt unter mingw mal mit make -lws2_32 -lwsock32 kompilieren wollen, aber ich bekomme trotz der Linker-Parameter noch ein undefined reference to `WSAStartup@8'...

    Woran könnte das noch liegen? Habe mich im Internet schon dumm und dämlich gesucht, aber überall findet man nur den Hinweis, man solle doch diese beiden Libs beim compilieren mitgeben, aber das habe ich ja nun gemacht - oder muss ich den make-Aufruf anders gestalten. 😕

    Thx im Voraus. 🙂



  • Hier noch mal die Ausgabe des Compilers, evtl. hilft das ja weiter:

    F:\orci_socket\2>make -lws2_32 -lwsock32
    mingw32-make -f Makefile.Release
    mingw32-make[1]: Entering directory `F:/orci_socket/2
    '
    g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runt
    ime-pseudo-reloc -Wl,-s -Wl,-s -Wl,-subsystem,windows -o "release\2.exe" release
    \test.o  -L"E:\Qt\4.0.0\lib" -lmingw32 -lqtmain -lQtCore4 -lQtGui4
    release\test.o(.text+0x1b):test.cpp: undefined reference to `WSAStartup@8'
    collect2: ld returned 1 exit status
    mingw32-make[1]: *** [release\2.exe] Error 1
    mingw32-make[1]: Leaving directory `F:/orci_socket/2'
    
    mingw32-make: *** [release] Error 2
    


  • Im Compileraufruf sind die Parameter ja gar nich drin



  • YASC schrieb:

    Im Compileraufruf sind die Parameter ja gar nich drin

    Danke für den Hinweis. Hatte das Problem inzwischen aber auch selbst gelöst: Habe die LIBS in der *.pro-File von Qt mitgegeben, dann geht es... direkt als Kommandozeilen-Parameter hat er die irgendwie nicht gefressen. 🙂


Anmelden zum Antworten