Wir verwenden vorkompilierte Header mit GCC für unser Projekt und bauen sie wie folgt aus:vorkompilierte Header und Kompilieren Universal-Objekte auf OSX
gcc $(CFLAGS) precompiledcommonlib.h
Jetzt baue ich das Projekt auf OSX 10.6 und versuchen, die raffinierte zu verwenden Merkmal zur gleichen Zeit wie dieser für alle Architekturen bauen:
gcc $(CFLAGS) -arch i386 -arch x86_64 precompiledcommonlib.h
Undefined symbols for architecture i386:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/z1/z1A0sPkqGDyPrZWo9ysVK++++TI/-Tmp-//cc3W2gwd.out (No such file or directory)
:
gcc $(CFLAGS) -c -arch i386 -arch x86_64 commonlib.c
aber es dies für den vorkompilierte Header nicht funktionieren scheint
Edit: Wie Mark nach XCode darauf hingewiesen hat, muss der vorkompilierte Header für jede Architektur separat erstellt werden, daher ist meine Frage eher, ob gcc den richtigen vorkompilierten Header beim Erstellen universeller Objekte verwenden kann.
Ich weiß, dass ich jede Architektur komplett getrennt bauen kann, wie XCode es tut, aber ich würde lieber die Möglichkeit nutzen, sie gleichzeitig zu bauen und nicht mit verschiedenen Build-Konfigurationen herumzualbern.
Ich habe gerade versucht, das gleiche zu tun, und von dem, was ich sammeln , Sie _cannot_ erzeugen eine PCH-Datei, während Sie Apple GCC zwei '-Arch'-Flags geben.Die Qt-Leute scheinen etwas Seltsames zu tun, um dies zum Laufen zu bringen. Vielleicht möchten Sie es sich genauer ansehen ... http://qt.gitorious.org/qt/qt/merge_requests/2193 – Lucas