【发布时间】:2011-02-06 06:31:28
【问题描述】:
出于某种原因,我想将静态库 (libx.a) 解压缩到单独的目标文件 (ao bo co) 中,并在链接器输入列表中指定这些目标文件 (ao bo co) 而不是 libx.a,使用其他链接器选项保持不变。
但是,我注意到上述更改导致输出可执行文件存在相当大的差异。基本上,(a.o b.o c.o) 方法会导致更大的输出大小。
那么这两种方法(libx.a 和单个目标文件)有什么区别? 有没有办法解决?
我使用的 GNU binutil (for and ar ld) 版本是 2.16.1
谢谢。
【问题讨论】:
-
您试图通过拆分单个目标文件来完成什么?
-
最初的原因是,我想在链接描述文件中为静态库指定输出部分。由于某种原因,存档语法 (libx.a:*.o(.text)) 不起作用,可能是由于我的工具链中的 binutil 版本过时。由于无法升级工具链,我不得不解压缩库并明确使用目标文件。这就是我遇到这个问题的原因。