Ist das eine Unix Lib?



  • Hallo Forum,

    ich habe Probleme einen alten Source zu kompilieren. Es fehlt scheinbar eine Library. Wie es der Zufall will habe ich auch einen Ordner Lib mit einer Datei Bizlogic.a

    Google sagt mir das .a Dateien Unix Bibliotheken sind. Die ersten Zeichen der Datei sind: !\<arch>

    Ist das ganz sicher eine Unix Lib? Oder besteht eine Möglichkeit das ich das Ding irgendwie mit dem MinGW/Gnu GCC Kompiler zu einer Windows Exe zusammenfügen kann?



  • *.a ist eigentlich keine Bibliothek.
    Es ist ein archiv von *.o Dateien.
    Und ja die kommen auf UNICES vor.

    Gehe davon aus das du weißt was *.o Datein sind.



  • Vielen Dank. Weißt du ob ich diese Datei vielleicht unter Windows einkompilieren kann?



  • Free Willly schrieb:

    Vielen Dank. Weißt du ob ich diese Datei vielleicht unter Windows einkompilieren kann?

    http://www.cygwin.com/



  • @Kingrüdi: Du meinst das ich eine Unix Exe erstelle und sie dann unter Cygwin simuliere? Das wäre für mich nicht das Optiomale.

    Mein Problem liegt so: Jemand hat ein Tool unter Windows entwickelt und eine Bibliothek für irgendwelche Funktionen eingebunden. Zu dieser Bib habe ich mittlerweile den Source gefunden. Wenn ich ihn kompiliere bekomme ich diese .a Datei. Ich frage mich jetzt ob ich diese .a Datei (die aus lauter .o Dateien besteht) mit einem Gnu gcc Kompiler zu einer Windows Exe linken kann. Oder muß ich bei dem Source einen Schalter umlegen damit die Bibliothek zu "etwas" für Windows kompiliert?



  • Free Willly schrieb:

    @Kingrüdi: Du meinst das ich eine Unix Exe erstelle und sie dann unter Cygwin simuliere? Das wäre für mich nicht das Optiomale.

    😕 Cygwin hilft dir Unix Programme unter Windows zu kompilieren (und auszuführen)



  • Free Willly schrieb:

    @Kingrüdi: Du meinst das ich eine Unix Exe erstelle und sie dann unter Cygwin simuliere? Das wäre für mich nicht das Optiomale.

    Mein Problem liegt so: Jemand hat ein Tool unter Windows entwickelt und eine Bibliothek für irgendwelche Funktionen eingebunden. Zu dieser Bib habe ich mittlerweile den Source gefunden. Wenn ich ihn kompiliere bekomme ich diese .a Datei. Ich frage mich jetzt ob ich diese .a Datei (die aus lauter .o Dateien besteht) mit einem Gnu gcc Kompiler zu einer Windows Exe linken kann. Oder muß ich bei dem Source einen Schalter umlegen damit die Bibliothek zu "etwas" für Windows kompiliert?

    Also sowohl die Objekt- als auch Lib-Dateien sind unter den Compiler inkompatibel. Ist leider nicht standardisiert, was ich auch schade finde. Aber so ist es nunmal.

    Du brauchst also nicht nur für jede Plattform sondern auch für jeden Compiler den Source, den du durchjagen mußt.



  • und nochmal deutlich:
    bei .a kann es sich sowohl um ne windows als auch um ne linux/unix lib handeln
    kommt drauf an womit sie erstellt wurde



  • Das AR Format ist standardisiert. Der GCC linker und der VC++ Linker sollten die Dateien verarbeiten können.



  • Ich glaube ich habe einen Schalter bei ./configure vergessen. Jetzt hab ich zwar immer noch eine .a Datei, ich kann sie aber linken.

    Vielen Dank Euch allen 🙂


Anmelden zum Antworten