调用编译器
不同形式的 XL C/C++ 编译器调用命令支持不同级别的 C 和 C++ 语言。 如果特定环境需要此命令,那么可以使用其他形式的命令。
由于 IBM® XL C/C++ for AIX® 由基于 XL 的前端和基于 Clang 的前端组成,因此编译器调用分为两个类别:
- 类别 I: 用于调用基于 XL 的前端的旧 XL C/C++ 调用,其典型示例为 xlc 和 xlC。 在大多数情况下,请使用 xlc 命令来编译 C 源文件,并使用 xlC 命令来编译 C++ 源文件。 如果同时具有 C 和 C++ 对象文件,请使用 xlC 进行链接。
- 类别 II: 对基于 Clang 的前端 xlclang 和 xlclang + +的调用。
xlclang 和 xlclang + + 在 表 3中描述。 它们在 IBM XL C/C++ for AIX 16.1中引入。
注: 对于每个调用命令,编译器配置文件定义缺省选项设置,在某些情况下定义宏; 有关特定调用所隐含的缺省值的信息,请参阅系统的 /opt/IBM/xlc/16.1.0/etc/xlc.cfg 文件。
| 基本调用 | 目标源文件 | 描述 | 等效特殊调用 |
|---|---|---|---|
| xlc | 调用 C 源文件的编译器。 | 此命令支持所有 ISO C99 标准功能部件以及大多数 IBM 语言扩展。 建议对所有应用程序执行此调用。 | xlc_r, xlc_r7, xlc128, xlc128_r, xlc128_r4, xlc128_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_r, cc_r4, cc_r7, cc128, cc128_r, cc128_r4, cc128_r7 |
| gxlc | 调用 C 源文件的编译器。 | 此命令接受许多常用 GNU C 选项,将它们映射到其 XL C 选项等效项,然后调用 xlc。 有关更多信息,请参阅 将 GNU C/C++ 编译器选项与 gxlc 和 gxlc + +一起复用。 | |
| xlc + +, xlC | 调用 C++ 源文件的编译器。 | 如果任何源文件是 C++ ,那么必须使用此调用来链接正确的运行时库。 带有 .c 后缀的文件 (假定您未使用 -+ 编译器选项) 将作为 C 语言源代码进行编译。 |
xlc + + _r, xlc++_r4, xlc++_r7, xlc++128, xlc++128_r, xlc++128_r4, xlc++128_r7, xlC_r, xlC_r4, xlC_r7, xlC128, xlC128_r, xlC128_r4, xlC128_r7 |
| xlc + + core, xlCcore | 调用 C++ 源文件的编译器。 | 调用编译器,如上所述,用于 xlc++ 和 xlC ,但仅链接到运行时库的核心。 如果要将应用程序链接到 XL C++ 提供的运行时库以外的其他运行时库,请使用此调用。 | xlc + + core_r, xlc++core_r7, xlc++core128, xlc++core128_r, xlc++core128_r7, xlCcore_r, xlCcore_r7, xlC128core, xlC128core_r, xlC128core_r7 |
| gxlc + +, gxlC | 调用 C++ 源文件的编译器。 | 此命令接受许多公共 GNU C/Ccontainer 选项,将它们映射到它们的 XL C/C++ 选项等效项,然后调用 xlc + +。 有关更多信息,请参阅 将 GNU C/C++ 编译器选项与 gxlc 和 gxlc + +一起复用。 |
| 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 分布式计算。 |
| 调用 | 描述 |
|---|---|
| xlclang | 该命令支持 ISO C11 标准,但原子功能部件除外。 该命令还支持大多数 IBM 语言扩展。 |
| xlclang++ | 此命令支持 ISO C++11 和 ISO C++14 标准,这些标准与 AIX的硬件和版本有一些依赖关系。 此命令还支持大多数 IBM 语言扩展。 |