一个库函数:libtest.a,其中有t0、t1、t2、t3、t4函数。 (创建方法: ar -rcs libtest.a t.o)
一个应用程序:test.c,其中仅调用了t0。
编译方法:gcc test.c -L. -ltest -o test
为什么得到的目标文件中还有t1、t2、t3、t4的代码?难道ld的最小连接单位是.o而不是函数?!不可能吧!
怎样让连接器仅连接所用到的库代码?
LD连接器为什么将静态库中的函数强加给我?
-
- 帖子: 1
- 注册时间: 2009-05-15 9:45
- windwiny
- 帖子: 2254
- 注册时间: 2007-03-13 17:26
Re: LD连接器为什么将静态库中的函数强加给我?
...静态的就是整个吧
- shellex
- 帖子: 2180
- 注册时间: 2007-02-18 19:33
- 系统: OSX
- 来自: lyric.im
- 联系:
Re: LD连接器为什么将静态库中的函数强加给我?
是的 。。。。
既然你诚心诚意地问了
我就大慈大悲地告诉你
为了防止世界被破坏
为了维护世界的和平
贯彻爱与真实的罪恶
可爱而又迷人的反派角色
武藏,小次郎
我们是穿越银河的火箭队,白洞白色的明天在等着我们。就是这样!!喵~~
我就大慈大悲地告诉你
为了防止世界被破坏
为了维护世界的和平
贯彻爱与真实的罪恶
可爱而又迷人的反派角色
武藏,小次郎
我们是穿越银河的火箭队,白洞白色的明天在等着我们。就是这样!!喵~~
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
Re: LD连接器为什么将静态库中的函数强加给我?
难道ld的最小连接单位是.o而不是函数
显然就是这样
显然就是这样
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。