プロジェクトではGCCでプリコンパイル済みヘッダーを使用しており、次のようにビルドします。
gcc $(CFLAGS) precompiledcommonlib.h
今、私はOSX 10.6でプロジェクトを構築しており、次のようにすべてのアーキテクチャで同時に構築するという気の利いた機能を使用しようとしています。
gcc $(CFLAGS) -c -arch i386 -arch x86_64 commonlib.c
ただし、これはプリコンパイル済みヘッダーでは機能しないようです。
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)
編集:MarkがXCodeに従って指摘したように、プリコンパイル済みヘッダーはアーキテクチャごとに個別にビルドする必要があるため、ユニバーサルオブジェクトをビルドするときにgccに正しいプリコンパイル済みヘッダーを使用させる方法があるかどうかが私の質問です。
XCodeのように各アーキテクチャを完全に個別にビルドできることは理解していますが、同時にビルドする可能性を利用して、さまざまなビルド構成をいじくり回す必要はありません。