XL C/C++ Advanced Edition 是一个基于标准的、进行优化的命令行编译器,用于在 PowerPC(R) 体系结构上运行的 Linux 操作系统。该编译器是一个专业编程工具,用于以扩展 C 和 C++ 编程语言创建和维护 32 位和 64 位应用程序。
本文档向您介绍 XL C/C++ 编译器。它描述了各种编译器调用以及定制编译环境和控制编译过程的方法。本文档包含编译器可以执行的转换类型的描述、输入和输出的可接受的文件类型、编译器选项的分类总结和用于移植现有应用程序的注意事项。本文档还简要介绍了如何优化应用程序的性能。编译器的优化能力使您能够利用 PowerPC 处理器的多层体系结构的方法。
Linux 和 AIX(R) 是互补的操作系统。如果您熟悉 IBM C for AIX 或 VisualAge(R) C++ Professional for AIX,您的 makefile 几乎可以直接在 Linux 平台上使用。如果您不熟悉 IBM C 和 C++ 编译器,本文档可以帮助您在编译、链接和运行时提高性能。
本文档假定您熟悉 C 和 C++ 编程语言、Linux 操作系统和 bash shell。
示例用于进行教学,并不尝试最大程度地减少运行时间、节约存储空间或检查错误。这些示例并不示范可能使用的所有语言构造。某些示例只是代码片段,如果不加上其它的代码,编译将不能进行。
>>--- 符号指示命令、伪指令或语句的开始。
---> 符号指示命令、伪指令或语句语法在下一行继续。
>--- 符号指示命令、伪指令或语句是从上一行继续的。
--->< 符号指示命令、伪指令或语句结束。
语法单元图不同于完整的命令、伪指令和语句,它以 >--- 符号开始,以 ---> 符号结束。
>>-statement--required_item------------------------------------><
>>-statement--+---------------+-------------------------------->< '-optional_item-'
如果必须选择这些项的其中一项,则堆叠中有一项出现在主路径上。
>>-statement--+-required_choice1-+----------------------------->< '-required_choice2-'
如果选择这些项目之一是可选的,则所有项都堆叠在主路径之下。
>>-statement--+------------------+----------------------------->< +-optional_choice1-+ '-optional_choice2-'
缺省项出现在主路径之上。
.-default_item---. >>-statement--+-alternate_item-+-------------------------------><
.-----------------. V | >>-statement----repeatable_item-+------------------------------><
堆叠上方的重复箭头指示您可以从堆叠的项中选择多项或重复单个选项。
变量以斜体小写字母的形式出现(例如:identifier)。它们表示用户提供的名称或值。
以下语法图示例显示了 #pragma comment 伪指令的语法。有关 #pragma 伪指令的信息,请参阅 XL C/C++ Language Reference。
(1) (2) (3) (4) (5) (6) (9) (10) >>-#--pragma--comment--(-------compiler---------------------------)->< | | +-----date----------------------------+ | | +-----timestamp-----------------------+ | | +--+--copyright--+--+-----------------+ | | | | +--user-------+ +--,-"characters"-+ (7) (8)
(1) 这是语法图的开始。
(2) 符号 # 必须首先出现。
(3) 关键字 pragma 必须跟在 # 符号之后。
(4) 编译指示的名称 comment 必须跟在关键字 pragma 之后。
(5) 左圆括号必须存在。
(6) 输入的注释类型必须仅为以下所指示的类型之一:compiler、date、timestamp、copyright 或 user。
(7) 逗号必须出现在注释类型 copyright 或 user 与可选字符串之间。
(8) 字符串必须跟在逗号之后。必须用双引号将字符串括起。
(9) 需要右圆括号。
(10) 这是语法图的结束。
按照以上显示的图表,#pragma comment 伪指令的下列示例在语法上是正确的:
#pragma comment(date) #pragma comment(user) #pragma comment(copyright,"This text will appear in the module")