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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容