winsock linken



  • Geht die Linkzeit bei nicht winsock Applikationen dadurch runter, oder was haben die sich dabei gedacht?



  • DarkBug schrieb:

    Geht die Linkzeit bei nicht winsock Applikationen dadurch runter, oder was haben die sich dabei gedacht?

    Nein! Wieso sollte die Linkzeit durch eine Lib herunter gehen. Zudem dies nur eine externe DLL angebunden wird. Kein eigener Code aus einer statischen Lib.

    Wie kommst Du daruf?



  • Aus meiner Sicht ist das so geregelt, das Code::Blocks nur die wichtigsten Libs mitlinkt, um die Linkzeit zu senken. Und die ws2_32.lib ist wohl aus der Sicht der Code::Blocks Entwickler eine nicht so wichtige Lib. Wenn dem nicht so ist, verstehe ich nicht weshalb das dann so geregelt ist.

    Was ist eigentlich sinnvoller, mit libws2_32.a oder mit ws2_32.lib zu linken?

    Ich war mir nicht sicher, hängt das von der IDE oder dem Compiler ab, was mitgelinkt wird?



  • DarkBug schrieb:

    Aus meiner Sicht ist das so geregelt, das Code::Blocks nur die wichtigsten Libs mitlinkt, um die Linkzeit zu senken. Und die ws2_32.lib ist wohl aus der Sicht der Code::Blocks Entwickler eine nicht so wichtige Lib. Wenn dem nicht so ist, verstehe ich nicht weshalb das dann so geregelt ist.

    Was ist eigentlich sinnvoller, mit libws2_32.a oder mit ws2_32.lib zu linken?

    Ich war mir nicht sicher, hängt das von der IDE oder dem Compiler ab, was mitgelinkt wird?

    Der Borland Compiler linkt die WinSock-Lib automatisch mit, sobald die Komponente verwendet wird. Darum ist der Borland-Compiler auch so beliebt - weil er vieles durch seine Automatik und Komponenten-Bibliothek vereinfacht, aber eben auch einiges an Overhead erzeugt.
    Die Code::Blocks "IDE" nutzt den MingW Compiler. Hier muss man einfach nur von Hand angeben, welche Bibliotheken für den eigenen Code benutzt werden. Finde ich eleganter, weil man selber dann die Übersicht auch hat was man braucht und was nicht.



  • Theoretisch könnte ich doch dann mit Code::Blocks den Borland Compiler benutzen und müsste die Libs nicht selber eintragen, oder macht das nicht der Borland Compiler sondern die Borland IDE? Mein Problem ist, das ich nie weiß, wann mir welche Lib fehlt.

    Ich habe mal versucht mit ws2_32.lib zu linken. Kann es sein, das diese gar nicht existiert? Es funktioniert nur, wenn ich mit der libws2_32.a linke.



  • DarkBug schrieb:

    Theoretisch könnte ich doch dann mit Code::Blocks den Borland Compiler benutzen und müsste die Libs nicht selber eintragen, oder macht das nicht der Borland Compiler sondern die Borland IDE? Mein Problem ist, das ich nie weiß, wann mir welche Lib fehlt.
    ...

    👍 Richtig, du kannst den Borland-Compiler selbst auch so nutzen. Es wird auch nur der Borland-Compiler kostenlos zum Download angeboten. Und ja, die IDE übernimmt die notwendigen Bibliothekseinträge und nicht der Compiler selber.

    Ich habe mal versucht mit ws2_32.lib zu linken. Kann es sein, das diese gar nicht existiert? Es funktioniert nur, wenn ich mit der libws2_32.a linke.

    Die Bibliothek kann einen anderen Namen haben (je nach Compiler und SDK). Lade dir entweder das Windows SDK herunter (findest du auf der Microsoft Homepage) oder schau mal im lib-Verzeichnis deines Compilers nach.



  • Danke. Ist es eigentlich möglich schon im Programmcode anzugeben, welche Lib mitgelinkt werden soll, oder ist dies nur mit den Parametern möglich, die dem Compiler übergeben werden?



  • Unter Visual C++ ist das möglich mit einer #pragma(lib, ...) Anweisung



  • Das funktioniert leider mit Code::Blocks nicht. Gibt es so eine Anweisung auch für die Code::Blocks IDE?



  • *push*


Anmelden zum Antworten