Estoy intentando crear una gran biblioteca estática que combine dos bibliotecas estáticas. En este momento estoy usando el comando 'AR', la extracción de objetos, por ejemplo, de 'AA' y 'ba' y luego volver a montar estos objetos usando 'AR' de nuevo:¿Cómo puedo extraer libs estáticas que contienen archivos de objetos repetidos?
$ ar x a.a
$ ar x b.a
$ ar r merged.a *.o
Por desgracia, no está funcionando para mi propósito, ya que aa tiene dentro diferentes objetos con el MISMO NOMBRE. El comando 'ar' está extrayendo los objetos repetidos y reemplazando los ya extraídos con el mismo nombre. Incluso con el mismo nombre, estos objetos tienen diferentes símbolos, por lo que obtengo referencias no definidas ya que algunos símbolos se pierden junto con los archivos reemplazados.
No tengo acceso a los objetos originales y ya probé 'ar xP' y 'ar xv' y un montón de 'ar stuff'. ¿Alguien puede ayudarme a mostrar cómo fusionar estas libs?
Gracias de antemano.
Genial, tuve el mismo problema y este script resolvió el problema. Pero creo que deberías escribir '' 'content_descripter [48:58]' '' en lugar de 48:57. El campo de tamaño de archivo es de 10 bytes en lugar de 9 bytes según [Wikipedia] (https://en.wikipedia.org/wiki/Ar_ (Unix)). –
Además, si maneja la variante BSD del formato de archivo .a (por ejemplo, en Mac), el nombre del archivo puede ser una parte de la parte del cuerpo, como se explica en [Wikipedia] (https://en.wikipedia.org/wiki/Ar_ (Unix)). Entonces también necesitarías una lógica para despojarlo. –