禁止链接器在生成目标程序时自动去除静态链接库中未调用函数和变量

为了减少目标文件的尺寸,编译过程中gcc会移除掉static和inline的函数,链接过程中ld负责移除其它在最终代码中调用的函数。

实际上可能某函数在最终可执行程序中未被调用,但是某个dlopen的.so正好需要,就需要保留这个函数,使用-Wl,--whole-archive和 -Wl,--no-whole-archive 两个链接选项就能保证未调用函数不被优化掉。

参考:

http://www.gamedev.net/topic/126037-will-gcc-include-my-unused-functions-in-the-exectuable/

http://blog.csdn.net/njuitjf/article/details/9293817

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值