configureスクリプトを用いた場合のユニバーサルバイナリのビルド方法

CFLAGSとCXXFLAGSとLDFLAGSで動かしたいアーキテクチャを指定する。また、configureスクリプトの--disable-dependency-trackingオプションを指定する。

> CFLAGS="-arch i386 -arch ppc -arch x86_64 -arch ppc64" CXXFLAGS="-arch i386 -arch ppc -arch x86_64 -arch ppc64" LDFLAGS="-arch i386 -arch ppc -arch x86_64 -arch ppc64" ./configure --disable-dependency-tracking

Macportsでユニバーサルバイナリを作る

ユニバーサルバイナリを作る際にはリンクする共有ライブラリもユニバーサルバイナリでなければならない。Mac OS Xに標準でインストールされているライブラリは全てユニバーサルバイナリだが、Macportsなどパッケージ管理ソフトウェアを用いてインストールしたものは標準ではユニバーサルバイナリではない。

port installをする時に+universal を指定するとユニバーサルバイナリが作られるはずだが、-isysroot /Developer/SDKs/10.4u.sdk (Mac OS Xppc版でユニバーサルバイナリを作る時に必要なオプション)の設定がされているが、10.5の場合はこのオプションでは動かない。Xcode 3.0のライブラリをインストールした上でそのライブラリを読むように設定しなければならない。

続きを読む