Sto provando a creare un binario universale su MacOSX con g ++. Tuttavia, non funziona davvero. Ho provato con questo semplice codice fittizio:g ++ su MacOSX non funziona con -arch ppc64
#include <iostream>
using namespace std;
int main() {
cout << "Hello" << endl;
}
Questo funziona bene:
% g++ test.cpp -arch i386 -arch ppc -arch x86_64 -o test
% file test
test: Mach-O universal binary with 3 architectures
test (for architecture i386): Mach-O executable i386
test (for architecture ppc7400): Mach-O executable ppc
test (for architecture x86_64): Mach-O 64-bit executable x86_64
Tuttavia, questo non lo fa:
% g++ test.cpp -arch i386 -arch ppc -arch x86_64 -arch ppc64 -o test
In file included from test.cpp:1:
/usr/include/c++/4.2.1/iostream:44:28: error: bits/c++config.h: No such file or directory
In file included from /usr/include/c++/4.2.1/ios:43,
from /usr/include/c++/4.2.1/ostream:45,
from /usr/include/c++/4.2.1/iostream:45,
from test.cpp:1:
/usr/include/c++/4.2.1/iosfwd:45:29: error: bits/c++locale.h: No such file or directory
/usr/include/c++/4.2.1/iosfwd:46:25: error: bits/c++io.h: No such file or directory
In file included from /usr/include/c++/4.2.1/bits/ios_base.h:45,
from /usr/include/c++/4.2.1/ios:48,
from /usr/include/c++/4.2.1/ostream:45,
from /usr/include/c++/4.2.1/iostream:45,
from test.cpp:1:
/usr/include/c++/4.2.1/ext/atomicity.h:39:23: error: bits/gthr.h: No such file or directory
/usr/include/c++/4.2.1/ext/atomicity.h:40:30: error: bits/atomic_word.h: No such file or directory
...
Qualsiasi idea perché?
Sono su MacOSX 10.6. Ho installato Xcode 3.2.2 con tutti gli SDK in dotazione. GCC 4.2 è l'impostazione predefinita. GCC 4.0 produce alcuni errori diversi, sebbene si comportino in modo simile.
Apparentemente, Apple non si è preoccupata di aggiornare la pagina man di gcc. – WhirlWind
Beh, non è davvero un problema GCC. è che non c'è ppc64 in MacOSX10.6.sdk, non che GCC non supporti ppc64. gcc * DOES * supporta ancora ppc64. Non c'è solo runtime in C++ con supporto per ppc64 nel 10.6 sdk. –
Fantastico, grazie per quello! Quel comando funziona. Come sarebbe con l'SDK 10.4? Perché non riesco a farlo funzionare. – Albert