2012-03-30 10 views
1

Lassen Sie uns sagen, dass ich ein paar .o Dateien in einem Verzeichnis haben, die in eine statische Bibliothek ar'ed erhalten:Können Sie eine statische lib (.a) in eine andere statische lib mit ar einschließen?

ar cr libstuff.a a.o b.o 

In einem anderen Verzeichnis gibt es ein paar andere .o Dateien, die sein müssen ar'ed neben dem libstuff.a oben erstellt:

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

ich dachte, dass libstuff.a einschließlich dort arbeiten würde, aber ich undefinierte Symbole bekommen (das in libstuff.a definiert werden soll), wenn ich das tun und dann später versuchen, mit libother.a zu verknüpfen. (mit g ++)

Gibt es eine Möglichkeit, ein .a in eine statische Bibliothek wie diese zu kombinieren oder ist das einfach nicht möglich?

Antwort

3

Wenn Sie 'ar t' auf der neuen lib ausführen, finden Sie, dass es eine Kopie der alten lib enthält. Nicht nützlich.

Sie müssen die Eingabebibliothek extrahieren, die neuen .o-Dateien hinzufügen und dann eine neue Lib mit dem gesamten Inhalt erstellen.

Verwandte Themen