Statische Library mit .la?

plonk

Mitglied
Moin zusammen,
ich möchte gerne mit dem gcj ein Programm übersetzen, dass die statische(?) Library lib-javax-net.la benötigt.
Dabei wundere ich mich erst einmal über die Dateiendung (soweit ich weiß enden statische Libraries immer mit .a) und ich weiß auch nicht, wie ich dem gcj sagen kann, dass er diese Library verwenden soll.
Ich habe schon probiert diese in lib-javax-net.a umzubenennen und dem gcj die Option "-l-javax-net" mitzugeben, aber dann meldet der Compiler nur " unrecognized file format".

Kann mir da jemand weiterhelfen?

Marc
 
Hi.

Schau dir die .la Datei einfach mal mit deinem Lieblings-(Text)Editor an. Dann wirst du schnell feststellen das das keine statische Library Datei ist. Die .la Dateien stammen von GNU libtool welches in Projekten benutzt wird um für verschiedene Plattformen "shared Libraries" (also nicht-statische Bibliotheken) zu erstellen.

Wenn du statisch linken möchtest benötigst du auch eine statische Bibliothek, die .la Datei nützt dir da gar nix. Du könntest allerdings den ELF statifier verwenden um aus einem dynamisch gelinkten Programm ein Programm zu erstellen welches statisch gelinkt ist.
 
Gar nicht. Die shared Library müßte sich im selben Pfad wie die .la Datei befinden und statt .la die Endung .so haben. Die .la Datei enthält nur Informationen über die shared Library (Abhängigkeiten, Installationspfad, usw.) und kann mit libtool in anderen Projekten verwendet werden um die Bibliothek zu anderen Dateien des Projekts hinzu zu linken.

Wenn du die shared Library nicht hast, fehlt dir wahrscheinlich einfach nur ein Paket oder die Installation eines oder mehrerer Pakete ist fehlerhaft.
 
OK, habs gefunden. Die *.so-Dateien waren versteckt in einem .libs-Unterverzeichnis.
Danke Auf jeden Fall für die Info!
 
Zurück