我是 gcc 的新手,只是一个问题gcc -masm,我知道通过使用 masm 我们可以从 ATT(默认)中选择(反)汇编方言到英特尔。而 -masm 是一个 GNU 选项,与微软的宏汇编程序 (masm) 无关。但是第一个 m-masm是什么意思呢?
gcc 有很多选项,如果程序员想要记住他们需要的选项,就需要有一种方法将它们分成组。这是通过使用选项的第一个字母来表示它所属的组,其余部分来描述特定选项本身来完成的。
-m引入米achine选项:东西是特定于gcc的行为编译为特定的机器时。您的 -masm= 仅对 x86 有意义,因为它在 x86 汇编方言之间进行选择。还有许多其他特定-march=pentium于x86 的选项(生成在 Pentium 上运行最好的代码,-mno-red-zone更改“红色区域”调用约定等)以及其他架构的更多选项(-mthumb在 ARM 上选择它具有的特定指令模式)。
其他一些值得了解的群体:
-W对于选项要求W¯¯你的代码中各种可能出现的问题arnings:-Wuninitialized获取有关未初始化变量的警告,例如。
(例外:-Wp, -Wa, -Wl不是用于警告,而是分别用于将选项“传递”给预处理器/汇编器/链接器。)
-f到集˚F影响解析,优化和代码生成过程中,以某种机器无关方式滞后:-fstrength-reduce请求被称为“强度降低”一个特定的优化,-fpic对于与位置无关的代码,等等。
-O为控制整个量或优先级选项ø ptimization:-O0为无,-O3对于大量的,-Os以优化尺寸等
-g对于选项控制得不克信息被包括在产生的目标文件。
-d对于那些打算通过编译器要使用的选项d evelopers,可能转储有关编译过程的信息。