覚え書〜lipo
lipoというコマンドを知ったので早速テスト。(MacBook Pro/Core2 Duo/MacOSX 10.5.2にて確認)
[axis:~] me% cc -Wall main.cpp -lstdc++ -o out32 [axis:~] me% file out32 out32: Mach-O executable i386 [axis:~] me% cc -Wall -arch x86_64 main.cpp -lstdc++ -o out64 [axis:~] me% file out64 out64: Mach-O 64-bit executable x86_64 [axis:~] me% lipo -arch i386 out32 -arch x86_64 out64 -output a.out -create [axis:~] me% file a.out a.out: Mach-O universal binary with 2 architectures a.out (for architecture i386): Mach-O executable i386 a.out (for architecture x86_64): Mach-O 64-bit executable x86_64
なるほど、これで32bitと64bitのバイナリを一つにまとめられるわけね。既存のコマンドも実はPowerPCとIntelアーキテクチャのバイナリが合体しているのであった。
[axis:~] me% file `whereis python` /usr/bin/python: Mach-O universal binary with 2 architectures /usr/bin/python (for architecture ppc7400): Mach-O executable ppc /usr/bin/python (for architecture i386): Mach-O executable i386