インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
このトピックは、Xcode* にのみ適用されます。
次のソースファイル HelloWorld.cpp について考えてみます。
#include <iostream>
using namespace std;
int main() {
char* platform;
#if defined( __i386__)
platform = "IA32";
#elif defined(__x86_64__)
platform = "Intel® 64";
#else
platform = "????";
#endif
cout << "Hello, " << platform << " World!"<< endl;
return 0;
}HelloWorld.cpp からユニバーサル・バイナリー実行ファイルをビルドするには、次の操作を行います。
icc -m32 -o HelloWorld_32 HelloWorld.cpp
icc -m64 -o HelloWorld_64 HelloWorld.cpp
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
Hello, Intel® 64 World
IA-32 アーキテクチャー・ベースのシステムでは、次のような出力になります。
Hello, IA32 World