对象代码控制

这些选项会影响编译器生成的对象代码、预处理代码或其他输出的特征。

表 1. 对象代码控制选项
选项名称 等效编译指示名称 描述
-q32, -q64 (-m32, -m64) 无。

选择 32 位或 64 位编译器方式。

-qalloca 和 -ma(仅限 C) 基于 XL 的前端开始#pragma alloca基于 Clang 的前端开始

当从不包含 alloca.h 头的源代码调用系统函数 alloca 时,请提供该函数的内联定义。

基于 XL 的前端开始-qconcurrentupdate(仅限C语言) 无。

支持在内核运行期间更新操作系统。

-qeh (-fexceptions)(仅限 C++) 无。

基于 Clang 的前端开始 -fexceptions 选项用于控制编译模块中是否允许异常处理。 基于 Clang 的前端端 -qeh 选项用于控制编译模块中是否启用异常处理。

-qexpfile 无。

-qmkshrobj-G 选项一起使用时,会将所有导出的符号保存在指定的文件中。

-qfuncsect 基于 XL 的前端开始#pragma选项 funcsect

基于 Clang 的前端开始没有。

将每个函数的指示信息放在单独的 对象文件控制部分或 CSECT中。 将每个函数放在它自己的 部分或 CSECT 中可能会减小程序的大小,因为链接程序可以收集每个函数而不是每个对象文件的垃圾。

-qinlglue 基于 XL 的前端开始#pragma选项 inlglue

基于 Clang 的前端开始没有。

-O2 或更高级别的优化一起使用时,内联粘接代码以优化应用程序中的外部函数调用。

-qkeepinlines(仅限 C++) 无。

保留或废弃未引用的 extern 内联函数的定义。

-qpic (-fPIC) 无。

生成独立于位置的代码 适合 以在共享库中使用。

基于 XL 的前端开始-qppline 无。

-E-P 选项一起使用时,启用或禁用生成 #line 伪指令。

-qpriority(仅限 C++) 基于 XL 的前端开始#pragma选项优先级,#pragma优先级

基于 Clang 的前端开始没有。

指定静态对象初始化的优先级。

基于 XL 的前端开始-qproto(仅限C语言) #pragma 选项 proto

指定用于将浮点自变量传递到尚未建立原型的函数的链接约定。

-r 无。

生成不可执行的输出文件,用作另一个 ld 命令调用中的输入文件。 此文件可能还包含未解析的符号。

-qreserved_reg 无。

指示在编译期间不能使用指定的寄存器列表,但作为堆栈指针或帧指针使用或以其他某种固定角色使用时除外。

-qro 基于 XL 的前端开始#pragma选项ro,#pragma字符串

基于 Clang 的前端开始没有。

指定字符串字面值的存储类型。

-qroconst 基于 XL 的前端开始#pragma选项roconst

基于 Clang 的前端开始没有。

指定常量值的存储位置。

基于 XL 的前端开始-qroptr 无。

指定常量指针的存储位置。

-qrtti 和 -qnortti (-fno-rtti)(仅限 C++) 无。

生成运行时类型标识 (RTTI) 信息以进行异常处理并供 typeiddynamic_cast 操作程序使用。

-s 无。

从输出文件中分离符号表、行号信息和重定位信息。

-qsaveopt 无。

将用于编译源文件的命令行选项、用户配置文件名和这些配置文件中指定的选项、编译期间调用的每个编译器组件的版本和级别以及其他信息都保存到相应的对象文件中。

基于 XL 的前端开始-qstatsym 无。

将用户定义的具有持久存储类的非外部名称(例如,已初始化和未初始化的静态变量)添加到对象文件的符号表中。

-qtbtable 基于 XL 的前端开始#pragma选项tbtable

基于 Clang 的前端开始没有。

控制对象文件中包含的调试追溯信息量。

-qthreaded 无。

向编译器指示它是否必须生成线程安全代码。

-qtls (-ftls-model) 无。

启用 __thread 存储类说明符的识别,该说明符指定要分配给线程本地存储器的变量; 并指定要使用的线程本地存储器模型。

-qunique 无。

为静态构造函数/析构函数文件编译单元生成唯一名称。

-qweakexp 无。

-qmkshrobj-G 选项一起使用时,在创建共享对象时生成的导出列表中包括或排除标记为弱的全局符号。

基于 XL 的前端开始-qweaksymbol 无。

启用弱符号的生成。

基于 XL 的前端开始-qxcall 无。

生成相应的代码以用于将编译单元中的静态函数视为外部函数。

XL C/C++ 支持以下选项以实现 GCC 兼容性。 有关这些选项的详细信息,请参阅 GNU Compiler Collection 在线文档,网址为 http://gcc.gnu.org/onlinedocs/请注意,这些 GCC 选项仅在 IBM® XL C/C++ for AIX® 16.1(由 xlclang/xlclang + +调用) 的基于 Clang 的前端中受支持。

  • -fexceptions
  • -fno-rtti
  • -fpack-struct
  • -fPIC, -fno-PIC
  • -fshort-enums
  • -fshort-wchar
  • -ftabstop=width
  • -ftls-model
  • -m32, -m64