-W (-X)
适用的调用
| 选项 | xlc (编译 C) | xlC (编译 C++) | xlclang(编译 C) | xlclang++(编译 C++) |
|---|---|---|---|---|
| -W | ✓ | ✓ | ✓ | ✓ |
| -X | ✓ | ✓ |
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表 。
类别
等效编译指示
无。
用途
将一个或多个选项传递到在编译期间执行的组件。
语法
参数
- option
- 对要传递到的组件有效的任何选项。
关于 -X ,有关链接和组装选项的详细信息,请参阅GNU Compiler Collection在线文档,网址为 http://gcc.gnu.org/onlinedocs/
。
下表显示了 -W 参数与组件名称之间的对应关系:
| -W 参数 | -X 参数 | 描述 | 组件名称 |
|---|---|---|---|
| a | 汇编程序 | The 汇编程序 | as |
| b | The 低级优化器 | xlCcode | |
| c | The 编译器前端 | xlcentry和 xlCentry | |
C |
The C++ 编译器前端 | xlCentry | |
| c 或 C | C 和 C++ 编译器前端 | xlCentry | |
| d | The 反汇编器 | dis | |
| E | CreateExportList 实用工具 | CreateExportList | |
f |
The c + + filt 实用程序 | c++filt | |
| I(大写 i) | The 高级优化器,编译步骤 | ipa | |
| L | The 高级优化器,链接步骤 | ipa | |
| l(小写 L) | 链接程序 | The 链接程序 | ld |
m |
The 链接帮助程序 | munch | |
| p | The 预处理器 | xlCentry |
使用量
在 -W 选项后面的字符串中,使用逗号作为每个选项的分隔符,并且不包含任何空格。
对于 -X 选项,需要在选项前留一个空格。
如果您需要在选项字符串中包含一个外壳特有的字符,请在该字符前添加一个反斜杠。 例如,如果在配置文件中使用 -W 选项,那么可以使用转义序列反斜杠逗号 (\ ,) 来表示参数字符串中的逗号。
您不需要 -W 选项来将大多数选项传递到链接程序 ld; 无法识别的命令行选项 ( -q 选项除外) 将自动传递到该链接程序。 只有与编译器选项具有相同字母的链接程序选项 (例如 -v 或 -S) 严格要求 -W。
默认情况下,静态对象按照以下优先级顺序进行初始化:
#pragma 优先级
或 -qpriority(仅限 C++) 选项。 您可以使用 -Wm 选项来控制具有相同优先级的对象的初始化顺序。 指定 -Wm -c 指示编译器按照在链接到库期间在命令行上给出的文件顺序来初始化具有相同优先级的对象文件,并根据这些文件中的静态对象的声明顺序来初始化这些文件。但是, -Wm -r 选项指定将以在链接阶段迂到的相反顺序来初始化具有相同优先级的对象文件。
#pragma 优先级
或 -qpriority(仅限 C++) 选项。 您可以使用 -Wm 选项来控制具有相同优先级的对象的初始化顺序。 指定 -Wm -c 指示编译器按照在链接到库期间在命令行上给出的文件顺序来初始化具有相同优先级的对象文件,并根据这些文件中的静态对象的声明顺序来初始化这些文件。但是, -Wm -r 选项指定将以在链接阶段迂到的相反顺序来初始化具有相同优先级的对象文件。
预定义的宏
无。
示例
要编译文件
file.c 并将链接程序选项 -berok 传递给链接程序,请输入以下命令:xlc -Wl,-berok file.c
要编译文件
uses_many_symbols.c 和组合件文件 produces_warnings.s ,以便使用汇编程序选项 组装 produces_warnings.s ,并使用选项 -s (对象文件的写列表和条带最终可执行文件) 链接对象文件,请发出以下命令:xlc -Xassembler -alh produces_warnings.s -Xlinker -s uses_many_symbols.c xlc -Wa,-alh produces_warnings.s -Wl,-s uses_many_symbols.c 
C