Ich versuche, ein Windows-Projekt, das boost 1.37 und wxwidgets enthält, auf den Mac zu portieren. Es kompiliert ok, aber der Linker gibt mir eine Fehlermeldung "Datei ist nicht von der erforderlichen Architektur für die Architektur ppc" für libz.1.dylib und die gleiche Nachricht wie eine Warnung einige andere Bibliotheken. Ich bekomme auch eine "doppelte Dylib" Warnung für libz.1.dylib.
Die Linker-Ausgabe sieht folgendermaßen aus:
Bauziel "Gemsweeper Mac" vom Projekt "Gemsweeper Mac" mit Konfiguration "Debug"
Abhängigkeiten prüfen
%Vor%Ich bin ziemlich neu in der Mac-Plattform, also würde jede Hilfe sehr geschätzt werden!
Danke,
Adrian
Von den Nachrichten, die Sie haben, wurden die meisten von Gemsweeper Mac und libboost nur mit ppc als Architektur kompiliert. Sie sollten Xcode konfigurieren, um universelle Binärdateien zu generieren und libboost wahrscheinlich über MacPorts neu zu kompilieren. Neuere MacPorts haben ein "universelles" Ziel, das helfen könnte, obwohl, wenn Sie nicht vorhaben, es auf ppc auszuführen, Sie es nur neu kompilieren müssen.
Sie scheinen auch zlib und libiconv neu kompilieren zu müssen.
Klingt so, als müssten Sie den Boost für Mac neu herunterladen oder neu erstellen. Und was auch immer Dylib ist, musst du tun. In einfachen Worten müssen Sie nur die Bibliotheken neu installieren.
Mit boost müssen Sie das Ganze nicht noch einmal herunterladen, die Quellen selbst sind multiplatform, es sind nur die Binaries (die libs und so), die sich von Plattform zu Plattform ändern. Wahrscheinlich haben Sie bereits alle Quellen heruntergeladen, also müssen Sie die Bibliothek nur aus den Quellen neu erstellen. Ссылка gibt dir einige Informationen über den Boost mit bjam. Ich weiß, unter Windows haben sie vorkompilierte Binärdateien, aber ich kann nichts darüber auf der Boost-Website für Mac sehen.
Deinstallieren und erneutes Installieren von zlib und libiconv (plus ein Dutzend anderer abhängiger Bibliotheken) mit sudo port xxx install + universal half. Danke für deine schnelle Antwort! : -)
Sie müssen die native Architektur anvisieren, nicht zwei .. die von "universal".
Dazu muss xcode abhängig von Ihrer xcode-Version auf "Native Architektur der Build-Maschine", "Nur aktive Architektur erstellen" und "Gültige Architekturen" eingestellt werden. aber reinige alle möglichen architektonischen Varianten.
und das ist, weil Boost mit dem Standard ./b2 install
nur die native Architektur bekommt.
versuche, Boost mit ./b2 install toolset=intel
Eine mögliche (und noch nicht erprobte) Lösung baut zweimal auf.
intel ./b2 install --prefix=/usr/local/x64 toolset=intel
natives ./b2 install --prefix=/usr/local/ppc