你可以在另一个带有ar的静态库中包含静态库(.a)吗?

时间:2012-03-30 16:47:01

标签: gcc ld ar

假设我在一个目录中有几个.o文件进入静态库:

ar cr libstuff.a a.o b.o

在另一个目录中,除了上面创建的libstuff.a之外,还有一些其他的.o文件需要编写:

ar cr libother.a c.o d.o /path/to/stuff/libstuff.a

我认为包括libstuff.a会在那里工作,但是当我这样做时,我得到未定义的符号(应该在libstuff.a中定义)然后尝试链接到libother.a。 (使用g ++)

有没有办法将.a组合成这样的静态库,或者这是不可能的?

1 个答案:

答案 0 :(得分:3)

你在新的lib上运行'ar t',你会发现它包含旧lib的副本。没用。

您需要提取输入库,添加新的.o文件,然后构建包含所有内容的新库。