GCC编译与Make工具使用指南
1. GCC编译选项
1.1 浮点运算相关选项
- -ffinite-math-only :生成可执行代码时,忽略参数和结果中的无穷大(infinities)和非数字(NaN,“not a number”)值。
- -fno-rounding-math :表明程序不依赖特定的舍入行为,也不会尝试更改浮点环境的默认舍入模式。目前这是默认设置,其相反选项 -frounding-math 仍处于实验阶段。
- -fno-signaling-nans :允许进行优化,以限制由信号NaN引发的浮点异常数量。目前这是默认设置,其相反选项 -fsignaling-nans 仍处于实验阶段。
1.2 特定架构优化选项
对于某些系统架构,GCC提供了针对特定处理器系列成员生成优化代码的选项,考虑了诸如内存对齐、特定型号CPU指令、堆栈结构、提高浮点精度、预取和流水线等特性。这些特定于机器的选项以 -m 为前缀。
| 选项 | 适用架构 | 作用 |
| ---- | ---- | ---- |
| -mcpu=cpu | Sparc、ARM、RS/6000 - PowerPC系列 | 为特定CPU类型的寄存器集、指令集和调度行为生成机器代码。使用此选项编译的程序可能无法在同一CPU系列的不同型号上运行。 |
| -mtune=cpu | 通用 | 为指定的CPU型号使用优化的调度参数,但遵循该系列的通用指令和寄存器,因此应