假设我在一个目录中有几个.o文件,这些文件被ar’ed到一个静态库中:
ar cr libstuff.a a.o b.o
在另一个目录中,除了上面创建的libstuff.a之外,还有几个其他的.o文件需要ar’ed:
ar cr libother.a c.o d.o /path/to/stuff/libstuff.a
我原以为包括libstuff.a会在那里工作,但当我这样做时,我会得到未定义的符号(应该在libstuff-a中定义),然后稍后尝试链接wtih libother.a(使用g++)
有没有办法把.a组合成这样的静态库,或者这是不可能的?
如果在新库上运行"ar t",您会发现它包含旧库的副本。没用。
您需要提取输入库,添加新的.o文件,然后构建一个包含所有内容的新库。