Wie kann man eine Library linken ? (MinGW)



  • Hallo,

    eigentlich war ich bisher sicher, dass es so geht: (MinGW)

    g++ -o main.exe head.cpp -L"C:/MinGW/lib" -lws_32

    Also, ich habe einen Quellcode (head.cpp) und ich will dazu die libws_32.a linken,
    aber der compiler sagt immer:

    D:\G>g++ -o main.o head.cpp -L"C:/MinGW/lib" -lws_32
    C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot fin
    d -lws_32
    collect2: ld returned 1 exit status

    Ich arbeite normalerweise mit einer IDE aber ich wollts mal ausprobieren...
    ws_32 hab ich schon versucht durch folgendes zu ersetzen: libws_32, libws_32.a
    nicht klappt... bisher

    Gruß Chris





  • Hmm, ich weiß, dass es google gibt, danke für den Hinweis 🙄

    Das Problem ist, dass im Prinzip es jeder so macht wie ich es gepostet hab, nur bei mir findet er die Libs nicht... hast du denn keine idee, woran meine fehlermeldung liegen könnte ?



  • Ok, nun hat sich mein Problem noch fokusiert:

    MinGW findet die Library (war tatsächlich ein Attributfehler), aber es kommt nun folgende Error Meldung: undefined reference to WinMain
    Klar ich habe auch keine main oder winmain funktion in einer static library...
    Wie kann ich das umgehen ? Ich hatte vor eine statische Bibliothek zu erstellen die Winsockfunktionen enthält...

    Gruß Chris



  • Eine statische Bibliothek erstellst du wie folgt:

    g++ -o foo.o foo.cpp
    ar r libfoo.a foo.o
    

    Bibliotheken werden hier noch nicht dazu gelinkt, wie in deinem Fall ws_32. Das erfolgt erst bei der Erstellung einer Executble, die diese Bibliotheken zur Erstellung benötigt.


Anmelden zum Antworten