インテル® Fortran コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス
このトピックは、Xcode* にのみ適用されます。
次のソースファイル HelloWorld.f90 について考えてみます。
PROGRAM HelloWorld IMPLICIT NONE #if defined( __i386__) #define _PLATFORM_ "IA32" #elif defined(__x86_64__) #define _PLATFORM_ "Intel® 64" #else #define _PLATFORM_ "????" #endif WRITE( *, * ) "Hello, ", _PLATFORM_, " World" END PROGRAM HelloWorld
HelloWorld.f90 からユニバーサル・バイナリー実行ファイルをビルドするには、次の操作を行います。
環境変数を設定して、コンパイラー環境を初期化します。
'source' コマンドを使用して compilervars.sh (または compilervars.csh) を実行します。
source install-dir/bin/compilervars.sh<arg> ここで、<arg> は ia32 または intel64 です。
m32 オプションを指定してコンパイラーを起動し、オブジェクト・ファイル HelloWorld_32 を生成します。
ifort -m32 -o HelloWorld_32 HelloWorld.f90
m64 オプションを指定してコンパイラーを起動し、オブジェクト・ファイル HelloWorld_64 を生成します。
ifort -m64 -o HelloWorld_64 HelloWorld.f90
lipo ユーティリティーを使用して、オブジェクト・ファイル HelloWorld_32 と HelloWorld_64 からユニバーサル・バイナリー実行ファイル HelloWorld を作成します。
lipo -create -arch i386 HelloWorld_32 -arch x86_64 HelloWorld_64 -output HelloWorld
それぞれのアーキテクチャーで正しい結果が生成されることを確認するため、ユニバーサル・バイナリーに対して file ユーティリティーを実行します。
file HelloWorld HelloWorld: Mach-O universal binary with 2 architectures HelloWorld (for architecture i386):Mach-O executable i386 HelloWorld (for architecture x86_64): Mach-O 64-bit executable x86_64
コンパイラーは、インテル® 64 アーキテクチャーでのみ __x86_64__ マクロを定義します。 そのため、インテル® 64 アーキテクチャー・ベースのシステムでユニバーサル・バイナリー HelloWorld を実行すると、次のような出力になります。
Hello, Intel® 64 World
IA-32 アーキテクチャー・ベースのシステムでは、次のような出力になります。
Hello, IA32 World