Extrait de l'objet (*.o) des fichiers à partir d'un iPhone bibliothèque statique
J'ai un ensemble de iPhone bibliothèques statiques (un *.un fichier) dans lequel je n'appelle que quelques-uns des classes de.
J'ai utilisé AR dans le passé (avec les bibliothèques linux) pour extraire les fichiers de l'objet à partir de la bibliothèque statique, supprimer les indésirables, les fichiers objets et les rearchive.
Cependant, quand j'ai essayer avec un iPhone compliled bibliothèque statique, j'obtiens l'erreur suivante:
ar: CustomiPhoneLib.a is a fat file (use libtool(1) or lipo(1) and ar(1) on it)
ar: CustomiPhoneLib.a: Inappropriate file type or format
Personne ne sait comment extraire les fichiers de l'objet à partir d'un iphone compilé en statique de la bibliothèque? Faire ce qui pourrait réduire la taille finale du fichier.
Vous devez vous connecter pour publier un commentaire.
C'est parce que votre CustomiPhoneLib.une est une graisse de la bibliothèque, c'est à dire, une bibliothèque qui contient plus d'une architecture cible, à savoir armv6 et armv7 sur iOS. Vous pouvez utiliser
lipo
pour extraire une architecture spécifique dans un autre .un fichier, utilisezar
etranlib
pour les manipuler à volonté, et ensuite utiliserlipo
de nouveau pour recombiner les manipulés .un des fichiers en un seul .de fichiers fat. Par exemple,Cependant, vous n'avez pas à le faire pour les raisons que vous avez mentionnées. L'éditeur de liens ne tirez objet (.o) des fichiers à partir d'une bibliothèque (.a) si elle a besoin de résoudre certains symbole de référence. Par conséquent, si la bibliothèque contient un fichier de l'objet dont les symboles ne sont jamais référencé pendant le processus de liaison (c'est à dire, les symboles qui ne sont pas utilisés de manière efficace), cet objet fichier ne pas le faire dans le fichier exécutable.
Code:
ar-t mylib.un
Ce sera la liste de tous les fichiers dans l'archive.
Code:
ar-xv mylib.un myobj.o
Cela permettra d'extraire l'objet donner myobj.o à partir de la bibliothèque mylib.un.
lipo -thin x86_64 libtag.a -output libtag2.a
, puisar tv libtag2.a
travaillé