2012-03-25 5 views
0

Ich habe eine Bibliothek (flam3), die von einigen Utility-Bibliotheken von Unix (xml2, jpeg, png, z) abhängt und ich versuche, eine Anwendung auf Lion, die es verwendet. Ich baue mit dem neuesten Xcode, und wenn ich versuche, mit den Bibliotheken von Fink, Macports und Homebrew zu verknüpfen, bekomme ich den gleichen Fehler:keine von fink Macports und Homebrew nützlich auf Löwe?

ld: Warnung: Datei /opt/local/lib/libxml2.a ignorieren, Datei wurde für Archiv aufgebaut, das nicht die Architektur verbunden ist (i386)

und die Bibliotheken sehen anders aus als diejenigen, die arbeiten:

bash-3.2 $ file /sw/lib/libxml2.a /sw /lib/libxml2.a: aktuelle ar Archiv zufällige Bibliothek

durch Vergleich

bash-3.2 $ Datei ~/Dokumente/flam3/libflam3.a /Users/spot/Documents/FLAM3/libflam3.a: Mach-O Universal Binary mit 2 Architekturen /Users/spot/Dokumente/flam3 /libflam3.a (für Architektur x86_64): aktuelle ar Archiv Zufallsbibliothek /Users/spot/Documents/FLAM3/libflam3.a (für i386-Architektur): aktuelle ar-Archiv Zufallsbibliothek

, dass die Bibliothek ist, dass ich kompiliert mit Xcode.

Gibt es eine Möglichkeit, Xcode diese Bibliothek zu akzeptieren? Gibt es eine Möglichkeit, fink/macports/homebrew dazu zu bringen, eine Bibliothek zu erstellen, die mit Xcode arbeitet? Scheint so, als würde ich es falsch machen, da diese Projekte nutzlos wären, wenn jeder dieses Problem hätte ... aber ich habe nicht das Gefühl, etwas Ungewöhnliches getan zu haben. Hilfe?

Antwort

1

Das Problem ist, dass Ihre libxml2.a nicht als "Universal Binary" erstellt wird. I.e. Es enthält nicht alle notwendigen Architekturen (In Ihrem Fall glaube ich, dass es i386 ist). Sie müssen fink, macports oder homebrew bitten, eine Bibliothek mit allen notwendigen Plattformen zu erstellen/herunterzuladen/zu installieren. Ich weiß, dass Macports solche Flagge hat (ich erinnere mich nicht, wie es heißt). Der "Datei" -Befehl listet alle verfügbaren Architekturen für .a-Datei nur auf, wenn die Datei wirklich universal ist (enthält zwei oder mehr von ppc, i386, x86_64), ansonsten zeigt sie nur die Vanille "ar archive ..." Nachricht. Das bestätigt, dass Ihre libxml2.a nur eine Architektur hat.

Das Problem ist nicht in Xcode oder Lion. Möglicherweise hat sich die Standard-Link-Architektur von Lion geändert.