statisch linken mit Code::Blocks



  • Hallo,
    was muss ich wo in Code::Blocks einstellen, damit statisch gelinkt wird? Habe bis jetzt leider nichts gefunden.
    Gruß Steffan.



  • Wenn du Code::Blocks mit dem MinGW nutzt, dann gib bei den CFLAGS einfach -static an.



  • Da muss ich dann gleich mal unwissend nachfragen, wo muss ich das mit den CFLAGS einstellen?

    Ja ich benutze Code::Blocks mit MinGW, unter Windows.



  • Weiß keiner wie ich das bei Code::Blocks einstellen kann/muss??



  • Mir ist leider völlig unklar was du eigentlich wissen willst.

    Willst du selbst eine statische Bibliothek erstellen? Dann wähle bei den Project Templates "Static Library", bzw. bei einem bereits existierenden Projekt wähle unter Project->Properties->Build Targets->Type "Static Library" aus.

    Willst du eine fremde Bibliothek statisch zu deinem Projekt dazulinken? Dann trage die Bibliothek unter Project->Build Options->Linker Settings mittels "Add" in die Liste "Link Libraries" ein.

    Wenn das nicht das ist was du wissen willst, dann musst du ein wenig ausführlicher fragen.



  • Ich möchte fremde Bibliotheken statisch zu einem Projekt dazu linken, damit die DLLs nicht gebraucht werden, speziell die von GTKmm. In der "Link Libraries" Liste sind die statischen Bibliotheken alle aufgeführt. Wenn ich ein erstelltes Programm auf einen anderen Rechner starten möchte, wird das fehlen der DLL bemängelt.



  • Habe jetzt verschiedene Sachen ausprobiert, genaues habe ich bisher mit google nicht gefunden, hat aber auch alles nichts gebracht. Entweder hat es keine Auswirkung oder bringt beim Programm erstellen Fehlermeldungen. Wenn ich das bisher gefundene richtig verstehe, linkt Code::Blocks die Bibliotheken standardmäßig dynamisch und ich müsste das mit dem Statisch linken unter Projekt->Einstellungen Erstellen->Linker settings->Weitere Linker-Einstellungen angeben. Nur werde ich auf Grund fehlender Beispiele nicht schlau daraus, was ich dort eintragen muss. Ein einfaches -static scheint nichts zu bringen. Auch die Angabe von -static unter Einstellungen->Global variables->cflags zeigt keine Wirkung.

    Ich hoffe, es verirrt sich doch noch jemand hierher, der mir Helfen kann wie ich Code::Blocks dazu bewege die Bibliotheken statisch in die .exe zu binden.?



  • Hi,
    Ich weiß nicht, wie es in deinem Fall ist, aber meines Wissens nach bewirkt die "-static" Flag nur, dass die standard Librarys, also die, die standardmäßig mitgelinkt werden, statisch gelinkt werden -> also nicht die manuell hinzugefügten.
    Bei SFML ist es z.B. so, dass, wenn man SFML statisch linken möchte, man anstatt *.a -s.a linken muss ( = Libraryname) und man "STATIC" bei den #defines angeben muss.
    Google doch mal danach, wie man GTKmm statisch linkt, vielleicht wirst du dann ja fündig. Außerdem könntest du einmal mit und einmal ohne die "-static" Flag bei den Linkerflags compillieren und gucken(wie auch immer das geschrieben wird), ob die gleich DLL fehlt.

    MfG DragonRaider


Anmelden zum Antworten