调用编译器

不同形式的 XL C/C++ 编译器调用命令支持不同级别的 C 和 C++ 语言。 如果特定环境需要此命令,那么可以使用其他形式的命令。

由于 IBM® XL C/C++ for AIX® 由基于 XL 的前端和基于 Clang 的前端组成,因此编译器调用分为两个类别:
  • 类别 I: 用于调用基于 XL 的前端的旧 XL C/C++ 调用,其典型示例为 xlcxlC。 在大多数情况下,请使用 xlc 命令来编译 C 源文件,并使用 xlC 命令来编译 C++ 源文件。 如果同时具有 C 和 C++ 对象文件,请使用 xlC 进行链接。

    表 1 列出了类别 I 中的所有编译器调用,包括基本调用及其相应的特殊版本。 表 2中描述了特殊调用。

  • 类别 II: 对基于 Clang 的前端 xlclangxlclang + +的调用。

    xlclangxlclang + +表 3中描述。 它们在 IBM XL C/C++ for AIX 16.1中引入。

如需了解基于XL的前端和基于Clang的前端之间的区别,请参阅基于XL的前端和基于Clang的前端之间的比较
注: 对于每个调用命令,编译器配置文件定义缺省选项设置,在某些情况下定义宏; 有关特定调用所隐含的缺省值的信息,请参阅系统的 /opt/IBM/xlc/16.1.0/etc/xlc.cfg 文件。
表 1. 编译器调用 (类别 I-旧 XL C/C++ 调用)
基本调用 目标源文件 描述 等效特殊调用
xlc 调用 C 源文件的编译器。 此命令支持所有 ISO C99 标准功能部件以及大多数 IBM 语言扩展。 建议对所有应用程序执行此调用。 xlc_rxlc_r7xlc128xlc128_rxlc128_r4xlc128_r7
c99 调用 C 源文件的编译器。 此命令支持所有 ISO C99 语言功能,但不支持 IBM 语言扩展。 使用此调用可严格符合 C99 标准。 c99_r, c99_r4, c99_r7, c99_128, c99_128_r, c99_128_r4, c99_128_r7
c89 调用 C 源文件的编译器。 此命令支持所有 ANSI C89 语言功能部件,但不支持 IBM 语言扩展。 使用此调用可严格符合 C89 标准。 c89_r, c89_r4, c89_r7, c89_128, c89_128_r, c89_128_r4, c89_128_r7
抄送 调用 C 源文件的编译器。 此命令支持 pre-ANSI C 和许多公共语言扩展。 您可以使用此命令来编译不符合标准 C 的旧代码。 cc_rcc_r4cc_r7cc128cc128_rcc128_r4cc128_r7
gxlc 调用 C 源文件的编译器。 此命令接受许多常用 GNU C 选项,将它们映射到其 XL C 选项等效项,然后调用 xlc。 有关更多信息,请参阅 将 GNU C/C++ 编译器选项与 gxlc 和 gxlc + +一起复用。  
xlc + +xlC 调用 C++ 源文件的编译器。 如果任何源文件是 C++ ,那么必须使用此调用来链接正确的运行时库。

带有 .c 后缀的文件 (假定您未使用 -+ 编译器选项) 将作为 C 语言源代码进行编译。

xlc + + _rxlc++_r4xlc++_r7xlc++128xlc++128_rxlc++128_r4xlc++128_r7xlC_rxlC_r4xlC_r7xlC128xlC128_rxlC128_r4xlC128_r7
xlc + + corexlCcore 调用 C++ 源文件的编译器。 调用编译器,如上所述,用于 xlc++xlC ,但仅链接到运行时库的核心。 如果要将应用程序链接到 XL C++ 提供的运行时库以外的其他运行时库,请使用此调用。 xlc + + core_rxlc++core_r7xlc++core128xlc++core128_rxlc++core128_r7xlCcore_rxlCcore_r7xlC128corexlC128core_rxlC128core_r7
gxlc + +gxlC 调用 C++ 源文件的编译器。 此命令接受许多公共 GNU C/Ccontainer 选项,将它们映射到它们的 XL C/C++ 选项等效项,然后调用 xlc + +。 有关更多信息,请参阅 将 GNU C/C++ 编译器选项与 gxlc 和 gxlc + +一起复用。  
表 2。 特殊调用的后缀
128 个后缀的调用 所有 128后缀的调用命令在功能上与其对应的基本编译器调用相似。 它们指定 -qldbl128 选项,这会将程序中 long double 类型的长度从 64 位增加到 128 位。 它们还与 C 和 C++ 运行时库的 128 位版本链接。
_r-后缀的调用 所有 _r后缀的调用都允许进行线程安全编译,您可以使用它们来链接使用多线程的程序。 如果要创建线程应用程序,请使用这些命令。

提供了 _r7 调用以帮助将基于 Posix Draft 7 的程序迁移到 Posix Draft 10。 _r4 调用应该用于 DCE 线程应用程序。 有关 DCE 的更多信息,请参阅 IBM Documentation 中有关 CICS Transaction Server for z/OS 分布式计算

表 3。 编译器调用 (类别 II-基于 Clang 的前端的调用)
调用 描述
xlclang 该命令支持 ISO C11 标准,但原子功能部件除外。 该命令还支持大多数 IBM 语言扩展。
xlclang++ 此命令支持 ISO C++11 和 ISO C++14 标准,这些标准与 AIX的硬件和版本有一些依赖关系。 此命令还支持大多数 IBM 语言扩展。

相关信息