Wie kann ich mit Dev-Cpp eine Lib kompilieren



  • Hallo,

    ich habe folgendes Problem:

    Ich habe eine Klasse geschrieben und möchte diese Klasse zu einer Lib kompilieren, um sie in kompilierter Form weiter zugeben. Leider weiß ich nicht wie ich das schaffe, bzw. kenne ich mich nicht so gut aus wie man über Kommandozeilen kompilliert.

    Ich hoffe ihr könnt mir helfen

    Besten dank schon im Voraus.



  • Dev-C++ ist doch eine IDE, da brauchst Du zunächst keine Konsolenanweisungen.
    Öffne ein Projekt und wähle als Projekttyp eine "Static Lib". Das sollte gehen. Dann kann man Deine Klasse mittels Klasse.h und Klasse.lib einbinden.

    Dev-C++ erzeugt übrigens nicht "xxx.lib", sondern "xxx.a". Der Name xxx ist die Projektbezeichnung.



  • Jetzt hol ich den alten Thread noch mal hoch.

    Kann man irgendwie aus dieser ".a" eine ".lib" machen? Grund: Ich will eine dll ausliefern, aber eben mit der entsprechenden ".lib", um die dll zur load-time einbinden zu können. Und meine Kunden benutzen wohl eher MS Visual C oder ähnliches als gcc.

    Einfach umbenennen geht übrigens nicht.

    Ach ja und: sind ".lib" Dateien Compiler-spezifisch (sind doch compiliert, oder nicht)?

    Gruß,
    Sebastian



  • http://www.mingw.org/mingwfaq.shtml#faq-msvcdll

    schau dich mal hier um. du hast sicher nen mingw32 drunter.



  • statische Libs sind immer compilerspezifisch ...
    Sprich eine Lib die mit compiler X compiliert hasst, wirst mit Compiler Y nicht zu einem binary dazulinken koennen.

    Das Geht nicht mal mit unterschiedlichen versionen vom selben compiler ...
    Wenn ich ne lib mit dem 6er MSVC compiliere, geht die mit dem 7er MSVC nicht.

    Lösung:
    Deinen code in anderer form weitergeben ...
    Da es ja nichts compiliertes sein darf, wuerd ich auf ne headerimplementierte Klasse in nem h file ausweichen ...

    Ciao ...



  • RHBaum schrieb:

    statische Libs sind immer compilerspezifisch ...
    Sprich eine Lib die mit compiler X compiliert hasst, wirst mit Compiler Y nicht zu einem binary dazulinken koennen.

    Naja, so verallgemeinern kann man das aber nicht. Bibliotheken (bzw die dort hinein gepackten Objektdateien) werden in einem bestimmten Format gepseichert. GCC verwendet dafür afaik coff. Wenn nun ein anderer Compiler genau das gleiche Format verwendet, kann er diese Libs durchaus verwenden.



  • Ja ok .... sagen wir mal man sollte nicht davon ausgehen 🙂

    und kommt ja nich nur aufs eigentliche format an, sondern wie die compiler ihre symbolnamen generieren etc ....
    Gibt viel zu viele unsicherheitsfaktoren 🙂

    Ciao ...



  • Hallo,

    danke für alle Antworten. Ich habe es nicht geschafft, aus meinem mingw ".a" und ".def" eine brauchbare ".lib" zu machen. Ist aber auch egal. Ich habe jetzt mit PellesC compililiert und tatsächlich eine ".lib" erhalten, die ich in MSVC einbinden kann. Von MSVC habe ich nur eine Autorenversion, deshalb kann ich nicht einfach damit compilieren. BCB habe ich nicht getestet, aber ist auch nicht so tragisch. Wer nicht zur load-time linken kann, kann ja immer noch "zu Fuß" zur run-time linken.

    Problem umgangen 😉

    Nochmals danke,
    Sebastian


Anmelden zum Antworten