gcc的一些有空的编译选项

一、链接静态库

-Wl,--whole-archive 将静态库中的所有的符号都链接进来
-Wl,--no-whole-archive 关闭该特性

一般这样使用
-Wl,--whole-archive -L. -lxxxlib -Wl,--no-whole-archive

二、自动优化掉未使用的函数

-ffunction-sections 编译源文件时,为每个function分配独立的section。

-fdata-sections 编译源文件时,为每个data分配独立的section。

--gc-sections 链接时,以section为最小处理单元,只有当section中有symbol被使用,才将该section链接到output中

我们在编译选项里面加上 -ffunction-sections -fdata-sections, 
然后在链接选项里面加上 -Wl,-gc-sections(但是注意,一旦使用-Wl,-gc-sections将无法使用gdb调试,也无法使用grpof)

你可能感兴趣的:(gcc的一些有空的编译选项)