Sun Studio 12: C ユーザーズガイド

B.2.41 -m32|-m64

コンパイルされたバイナリオブジェクトのメモリーモデルを指定します。

32 ビットの実行可能ファイルと共有ライブラリを作成するには、-m32 を使用します。64 ビットの実行可能ファイルと共有ライブラリを作成するには、-m64 を使用します。

Solaris プラットフォームおよび 64 ビットが有効にされていない Linux プラットフォームでは、デフォルトは ILP32 メモリーモデル (32 ビットの int、long、ポインタデータ型) です。64 ビットが有効にされている Linux プラットフォームでは、デフォルトは LP64 メモリーモデル (64-ビットの long、ポインタデータ型) です。-m64 は、LP64 モデルが有効であるプラットフォームだけで使用できます。

-m32 を使用してコンパイルされたオブジェクトファイルまたはライブラリは、-m64 を使用してコンパイルされたオブジェクトファイルまたはライブラリとリンクすることはできません。

-m64 を使用して大量の静的データを持つアプリケーションをコンパイルする場合は、-xmodel=medium も必要になる場合があります。一部の Linux プラットフォームではミディアムモデルをサポートしていないことに注意してください。

以前のリリースのコンパイラでは、ILP32 または LP64 のメモリーモデルは -xarch を使用して命令セットを選択していました。Sun Studio 12 のコンパイラをはじめ、現在はこのようなコンパイラはありません。ほとんどのプラットフォームでは、コマンド行に -m64 を追加するだけで 64 ビットオブジェクトを作成できます。

Solaris では、デフォルトは -m32 です。64 ビットプログラムをサポートしている Linux システムでは、デフォルトは -m64 -xarch=sse2 です。

-xarch を参照してください。