コマンドラインからユニバーサルバイナリを生成する
コマンドラインからgcc/g++を起動してユニバーサルバイナリを生成するにはプログラムを動作させたいアーキテクチャを-arch target オプションをつけて指定する。
/* hello_universal.c */ #include <stdio.h> int main(int argc, char *argv[]) { printf("Universal Hello World\n"); return 0; }
>gcc -arch i386 -arch ppc -arch x86_64 -arch ppc64 -o hello_universal hello_universal.c >/hello_universal Universal Hello World >file hello_universal hello_universal: Mach-O universal binary with 4 architectures hello_universal (for architecture i386): Mach-O executable i386 hello_universal (for architecture ppc7400): Mach-O executable ppc hello_universal (for architecture x86_64): Mach-O 64-bit executable x86_64 hello_universal (for architecture ppc64): Mach-O 64-bit executable ppc64 >
動作させたいアーキテクチャとオプションのtargetとの関係は次の通り。