Compiler Options
Compiler Options
丈夫非无泪,不洒离别间。
gcc
编译器是经常使用的,其编译选项很重要。
1、编译警告
-w
: 关闭所有警告,不建议使用-W
: 开启素有gcc 能提供的警告-werror
: 将所有警告转为错误,开启该选项,遇到警告会终止编译-Wall
: 编译后显示所有警告.
2、占用空间
概念:GCC链接操作是以section作为最小的处理单元,只要一个section中的某个符号被引用,该section就会被加入到可执行程序中去。
因此,GCC在编译时可以使用 -ffunction-sections
和 -fdata-sections
将每个函数或符号创建为一个sections,其中每个sections 名与function 或data 名保持一致。
而在链接阶段, -Wl,–gc-sections 指示链接器去掉不用的section(其中-Wl, 表示后面的参数 -gc-sections 传递给链接器),这样就能减少最终的可执行程序的大小了。
使用方法:
CFLAGS += -ffunction-sections -fdata-sections
LDFLAGS += -Wl,--gc-sections
3、关于优化选项:
-ON
:指定代码的优化等级为N,可取值为0,1,2,3; o0没有优化,o3优化级别最高,默认 -O1。-os
使用了-o2的部分优化选项,同事对代码尺寸进行了优化。
4、其他选项:
-masm=intel
:代表生产汇编格式是intel格式,默认是AT&T格式-save-temps=obj -fverbose-asm -fno-asynchronous-unwind-tables
:生成objdump的反汇编文件
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!