メモ:Snow Leopard上でLeopardで動くバイナリをビルドするには
g++のオプションに以下を入れてビルドすればよい。(もちろんSnow LeopardのCDからXCode Toolsをインストールしたあとで。)
-arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5
もし、以下のようなエラーが出たら、ライブラリのarchitectureが合っていない。
ld: warning: in libXXX.dylib, file is not of required architecture
architecureを確認するには、
file libXXX.dylib
その結果、
libXXX.dylib: Mach-O 64-bit executable x86_64
と出たら、64bitでビルドされているということなので、32bit(-arch i386)か、64bitと32bitのUniversal binary(-arch i386 -arch x86_64を同時に指定)でリビルドする必要がある。
Macportsで入れたライブラリだったら、
sudo port install libXXX +universal
というように+universalを指定すると多くのライブラリでUniversalでビルドしてくれる。
さらにそのライブラリにdependencyがある場合は、入っているものを全部uninstallしてからやりなおす必要があるかも。
sudo port -f uninstall installed sudo port install libXXX +universal g++ -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5 ...
参考:http://cocoawithlove.com/2009/09/building-for-earlier-os-versions-in.html