[gelöst] Linken von statischen Bibliotheken unter Mac OS

Alles rund um die Programmierung mit Qt
Antworten
Wolferl2
Beiträge: 10
Registriert: 9. November 2008 00:54
Kontaktdaten:

[gelöst] Linken von statischen Bibliotheken unter Mac OS

Beitrag von Wolferl2 »

Hallo,

ich hänge schon die ganze Nacht an einem Problem, dass ich einfach nicht in den Griff bekomme:

Ich möchte unter QT 4.5.x mit dem QtCreator auf dem Mac eine statische Bibliothek linken. Die Library liegt als .a Datei und als .dylib vor. Ich würde gerne statisch linken, damit es beim Installieren weniger Probleme gibt...

Nun denn. Die Bibliotheken liegen im Verzeichnis

/Library/MeinZeugs/libMeineLib.a
/Library/MeinZeugs/meineLib.dylib

In meiner Pro Datei steht drin:

macx {
LIBS+= -LLibrary/MeinZeugs/ -llibMeineLib.a
# LIBS+= -LLibrary/MeinZeugs/ -lmeineLib.dylib
}

Ich habe nun schon alles erdenkliche probiert, mit
LIBS+= -LLibrary/MeinZeugs/ -llibMeineLib.a
LIBS+= -LLibrary/MeinZeugs -llibMeineLib.a
LIBS+= -LLibrary/MeinZeugs/ -llibMeineLib
LIBS+= -LLibrary/MeinZeugs -llibMeineLib

Die Meldung ist immer

ld: library not found for -llibMeineLib.a

Die Frage ist nun, was mache ich falsch???

Ich habe zum Vergnügen mal versucht unter XCode die Bibliothek zu nutzen, nach 2 Stunden hat es geklappt, von dort kann ich linken und auch die Bibliothek nutzen. Aber ich mag den QtCreator, so dass ich nicht das ganze Projekt nach XCode portieren möchte (unter Windows nehme ich auch den QtCreator, nur zum Debuggen gehe ich noch auf MSVC).

Nun denn, ich würde mich freuen, wenn irgendjemand eine Idee hat, wie ich die .a Datei (oder zur Not auch die dynamische Lib) verwenden kann.

Ist denn so eine .a automatisch eine Universal Binary? Auf meinem Intel Mac läuft es jedenfalls? Klappt das dann auch auf PowerPC???

Danke schon mal

Wolfgang
Zuletzt geändert von Wolferl2 am 6. September 2009 15:13, insgesamt 1-mal geändert.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

ld: library not found for -llibMeineLib.a

Die Frage ist nun, was mache ich falsch???
Das steht eigentlich in jedem gcc-Tutorial (google).. wie z.B.:
http://www.network-theory.co.uk/docs/gc ... ro_17.html

Bei libNAME.a lautet die Linkeranweisung -lNAME.
Wolferl2
Beiträge: 10
Registriert: 9. November 2008 00:54
Kontaktdaten:

Danke!

Beitrag von Wolferl2 »

Hallo Solarix,

Danke, Du hast den Tag gerettet.

Entschuldige die wirklich dumme Frage - aber meine Linux-Zeiten sind schon über 15 Jahre her (ja, so alt ist Linux schon) und mir war es einfach nicht mehr präsent. Nach so langer Zeit mit Windows-Geklicke war ich das einfach nicht mehr gewohnt.

Wenn ich gewusst hätte, wo ich nach schauen muss, hätte ich es auch alleine Gefunden - so aber nochmals herzlichen Dank für Deine Hilfe!

Wolfgang
Antworten