文章目录
-
- 一、-ffixed-x18
- 二、-Wstrict-prototypes
- 三、-Wno-format-security
- 四、-g
- 五、-fno-builtin
- 六、-ffreestanding
- 七、-Wno-unused-function
- 八、-Wno-implicit-function-declaration
- 九、-Os
- 十、 -fno-stack-protector
- 十一、-fno-delete-null-pointer-checks
- 十二、-fstack-usage
- 十三、-Wno-format-nonliteral
- 十四、-Werror=date-time
- 十五、-fno-toplevel-reorder
- 十六、-Wstrict-aliasing
- 十七、-ffunction-sections
- 十八、-fno-pic
- 十九、-fdata-sections
- 二十、-fno-common
- 二十一、-pipe
一、-ffixed-x18
-ffixed-x18 是GCC编译器的一个选项,它用于指定寄存器x18在函数调用时被预留不可使用。x18是ARM体系结构上的一个寄存器。
通过使用-ffixed-x18选项,编译器会将寄存器x18保留为固定的,禁止在函数中使用它来存储临时变量或执行其他操作。这通常用于特定的场景,例如在操作系统的内核或某些特殊的编程需求中。
二、-Wstrict-prototypes
-Wstrict-prototypes 是GCC编译器的一个警告选项,它用于启用在函数声明中强制检查函数参数类型的严格规则。该选项会在以下情况下发出警告:
函数声明中参数没有指定类型。
函数声明中参数声明中使用了缺省类型。
通过使用-Wstrict-prototypes选项,编译器会强制要求所有函数声明中的参数类型必须显式指定,在这种情况下,如果函数声明中遗漏了参数类型或者参数使用了缺省类型,编译器将会发出警告。
三、-Wno-format-security
-Wno-format-security 是GCC编译器的一个选项,它用于禁用有关格式化字符串函数的安全性警告。格式化字符串函数(如printf、scanf等)接受一个格式化字符串作为参数,而这些字符串中的格式控制符和对应的参数类型必须匹配,否则可能导致安全漏洞,比如格式化字符串攻击。
通过使用-Wno-format-security选项,编译器会禁用与格式化字符串函数相关的安全性警告。这意味着即使代码中存在格式化字符串在使用上可能有问题的情况,编译器也不会报出相应的警告信息。
四、-g
-g 是GCC编译器的一个选项,它用于在生成的可执行文件或调试信息文件中,包含额外的调试信息。这些调试信息可以被调试器用来跟踪源代码与可执行代码之间的映射关系,以及在调试时查看变量的值和执行流程。
通过使用-g选项,编译器会在编译过程中将调试信息嵌入到生成的目标文件中。这样,生成的可执行文件或调试信息文件就能包含与源代码相关的调试信息。
五、-fno-builtin
-fno-builtin 是GCC编译器的一个选项,它用于禁用内建函数的替换功能。GCC编译器会对一些常见的函数(如memcpy、strlen等)提供内建版本,这些内建函数通常优化后的,能够提供更好的性能。而使用-fno-builtin选项可以禁用这种替换,让编译器使用库中提供的函数而非内建版本。
通过使用-fno-builtin选项,编译器会禁用对内建函数的替换,在编译过程中会使用库中提供的函数实现。
六、-ffreestanding
-ffreestanding 是GCC编译器的一个选项,它用于指定使用自由环境编译,即编译一个独立的、没有操作系统支持的可执行文件。这个选项通常用于嵌入式系统或操作系统内核开发,其中不依赖于标准库和操作系统函数的可执行文件。
通过使用-ffreestanding选项,编译器会假设没

最低0.47元/天 解锁文章
8883

被折叠的 条评论
为什么被折叠?



