常规选项 - 2023.2 简体中文

Vitis 统一软件平台文档 嵌入式软件开发 (UG1400)

Document ID
UG1400
Release Date
2023-12-13
Version
2023.2 简体中文
-E
仅执行预处理,不执行编译、汇编和链接。预处理后的输出将显示在标准输出器件上。
-S
仅执行编译,不执行汇编和链接。生成 .s 文件。
-c
仅执行编译和汇编;不执行链接。生成 .o 文件。
-g
该选项用于向输出文件添加基于 DWARF2 的调试信息。此调试信息是 GNU 调试器、mb-gdb 或 arm-none-eabi-gdb 所必需的信息。调试器可在源码级别和汇编级别提供调试。仅当输入为 C/C++ 源文件时,该选项才能添加调试信息。
-gstabs
请将该选项用于在源码级别的汇编 (.S) 文件和汇编文件符号上添加基于 STABS 的调试信息。此汇编程序选项直接提供给 GNU 汇编程序、mb-as 或 arm-none-eabi-as。如果使用编译器 mb-gcc 或 arm-none-eabi-gcc 来对汇编文件进行编译,请给该选项添加 -Wa 前缀。
-On
GNU 编译器可在不同级别提供最优化。下表中的最优化级别仅适用于 C 语言和 C++ 语言源文件。
表 1. 适用于值 n 的最优化
n 最优化
0 无编译。
1 中等编译。
2 完全编译
3 完全编译。尝试自动内联小型子程序。
S 按大小进行最优化。
注释: 如果最优化级别为 1 和更高级别,则会导致代码重排。执行代码调试时,建议使用无最优化级别。通过 GDB 对最优化后的程序进行调试时,显示的结果可能看上去不一致。
-v
该选项可采用详细模式执行编译器和编译器底下的所有工具。该选项可以提供传递给所有工具的选项的完整描述。此描述可用于发现每个工具的默认选项。
-save-temps
GNU 编译器可以提供在编译过程中保存生成的中间文件的机制。编译器可存储以下文件:
  • 预处理器输出文件 -input_file_name.i(适用于 C 语言代码)和 input_file_name.ii(适用于 C++ 语言代码)
  • 编译器 (cc1) 输出文件,采用汇编格式 - input_file_name.s
  • 汇编程序输出文件,采用 ELF 格式 - input_file_name.s

编译器会将整个编译的默认输出保存为 a.out。

-o filename
编译器会以 ELF 格式存储编译进程的默认输出,文件名为 a.out。您可以使用 -o output_file_name 更改默认名称。创建的输出文件采用 ELF 格式。
-Wp,<option>-Wa,<option>-Wl,<option>
编译器 mb-gccarm-none-eabi-gcc 作为其他可执行文件的包装文件使用,此类可执行文件包括预处理器、编译器 (cc1)、汇编程序和连接器等。您可以单独运行编译器的这些组件,或者也可以通过顶层编译器来运行。

某些工具需要通过某些选项才能使用,但顶层编译器可能不需要选项。要运行这些命令,请使用下表中列出的选项。

表 2. 传递到顶层 GCC 编译器的工具专用选项
选项 工具 示例
-Wp,<option> 预处理器
mb-gcc -Wp,-D -Wp, MYDEFINE ...

向预处理器发出信号,指示其使用 -D MYDEFINE 选项来定义 MYDEFINE 符号。

-Wa,<option> 汇编程序
mb-as -Wa, ...

向汇编程序发出信号,指示其将 MicroBlaze 处理器定为目标。

-Wl,<option> 连接器
mb-gcc -Wl,-M ...

向连接器发出信号,指示其使用 -M 选项生成映射文件。

-help
将该选项与任意 GNU 编译器搭配使用即可获取有关可用选项的更多信息。您也可以查询 GCC 手册。
-B directory
向 C 语言运行时库搜索路径添加目录。
-L directory
向库搜索路径添加目录。
-I directory
向头文件搜索路径添加目录。
-l library
搜索库中是否存在未定义的符号。
注释: 编译器会向此命令行开关中所指示的库名称添加“lib”前缀。