Sun Studio 12:C 用户指南

1.1.1 针对 64 位平台进行编译

在本发行版中,指定 32 位或 64 位二进制编译的方法发生改变。B.2.68 -xarch=isa选项不再携带隐式内存模型 32 位 ILP32 或 64 位 LP64 及其定义,该选项现在仅用于指定目标处理器的指令集。

使用新的 B.2.41 -m32|-m64 选项可指定目标编译的内存模型。

ILP32 模型指定 C 语言 int、long 和 pointer 数据类型均为 32 位。LP64 模型指定 long 和 pointer 数据类型均为 64 位。Solaris 和 Linux OS 还支持 LP64 内存模型下的大型文件和大型数组。

如果使用 -m64 进行编译,作为结果得到的可执行文件仅在运行 64 位内核的 Solaris OS 或 Linux OS 下的 64 位 UltraSPARC(R) 或 x86 处理器上有效。只能在支持 64 位执行的 Solaris 或 Linux OS 上对 64 位对象进行编译、链接和执行。