Oracle Solaris Studio 12.2:C++ 用户指南

A.2.152 -xmodel=[a]

(x86) -xmodel 选项使编译器可以针对 Solaris x86 平台修改 64 位对象形式,只应在要编译此类对象时指定该选项。

仅当启用了 64 位的 x64 处理器上还指定了 -m64 时,该选项才有效。

a 必须是以下值之一:

表 A–40 -xmodel 标志

值  

含义  

small

此选项可为小模型生成代码,其中执行代码的虚拟地址在链接时已知,并且已知在 0 到 2^31 - 2^24 - 1 的虚拟地址范围内可以找到所有符号。 

kernel

按内核模型生成代码,在该模型中,所有符号都定义在 2^64 - 2^31 到 2^64 - 2^24 范围内。 

medium

按中等模型生成代码,在该模型中,不对数据段的符号引用范围进行假定。文本段的大小和地址的限制与小型代码模型的限制相同。使用 -m64 编译时,具有大量静态数据的应用程序可能会要求 -xmodel=medium

此选项不累积,因此编译器根据命令行最右侧的 -xmodel 实例设置模型值。

如果未指定 -xmodel,编译器将假定 -xmodel=small。如果指定没有参数的 -xmodel,将出现错误。

不必使用此选项编译所有转换单元。只有可以确保访问的对象在可访问范围之内,才可编译选择的文件。

您应了解,不是所有的 Linux 系统都支持中等模型。