2

ar可以创建一个.a包含另一个.a文件的文件,这样的输出ar -t whatever.a如下所示:

someotherarchive.a
foo.o
bar.o

但是,如果随后链接此档案,则.oin 中的符号someotherarchive.a将无法通过foo.o. 这可以通过在创建时使用Tswitch 进行展平来解决ar,但这也会创建一个精简的存档。由于似乎没有 flatten-but-don't-thin 选项,因此有必要先从中提取someotherarchive.a然后.o独立链接 s 以创建包含以下内容的内容:

otherarchivememberA.o
otherarchivememberB.o
foo.o
bar.o

提出问题,如果把一个.a放在另一个里面.a就无法访问,这样做的目的是什么?

4

1 回答 1

2

这大概是因为ar 在历史上它是一个通用的归档工具,比如tar.

换句话说,如果您正在创建静态库,则无法访问嵌套档案是没有意义的。

于 2014-05-15T18:05:05.240 回答