J'essaie de créer un seul fichier .a qui contiendra 3 fichiers .a différents afin que je puisse partager un seul fichier .a. C'est la commande que j'utilise mais je reçois cette erreur de lipo: p> ./ libinput1.lib et ./libinput2.lib
avoir les mêmes architectures (I386) et
ne peut pas être dans le même fichier de sortie gras p>
blockQuote> aucune idée de la façon de vous débarrasser de cela? p> p>
5 Réponses :
Je viens d'avoir le même message d'erreur, et cela était dû au fait que j'avais mon architecture réglée sur "Autre" et que j'ai saisi en Arm6. Pour résoudre le problème, je modifiais simplement mon paramètre d'architecture à l'une des valeurs par défaut, dans mon cas, je cueille la norme (Arm6 Arm7). Le paramètre Architectures peut être trouvé dans vos paramètres de construction de projet. P>
C'est donc la deuxième fois que je suis ici. La réponse n'a pas résolu mon problème. Ce que j'ai trouvé, c'est que c'est en fait un bogue en Xcode. Ce qui s'est passé les deux fois, c'est que je viens de trouver cette réponse et ce n'est pas mon problème, puis je suis en train de jouer pendant des heures à essayer de comprendre ce qui se passe et la prochaine chose que je connais des accidents de Xcode. Ouvrez Xcode à nouveau et magique Le problème est parti. P>
Alors j'ajoute ma réponse pour m'aider à me souvenir de cette prochaine fois. P>
Échoue pour moi comme le fait le script d'échantillon. Lipo ne peut pas créer de fichier de sortie temporaire.
Une solution de contournement qui a travaillé pour moi (car je ne pouvais pas comprendre quelle partie du processus de construction créait une cible d'architecture supplémentaire à la compilation): élimine simplement l'architecture de l'une des deux bibliothèques .a.
Tout d'abord, vous pouvez répertorier l'architecture avec une commande em> fichier em> p>
lipo -remove i386 libwhatever.a -output /tmp/libwhatever.a mv /tmp/libwhatever.a libwhatever.a
J'ai mis à jour XCode12, obtenez une erreur de liaison à partir de l'application à l'aide de la liberme créée. Erreur - Bâtiment pour iOS Simulator, mais reliant dans le fichier d'objet construit pour MacOS, fichier .a pour architecture x86_64 code>. Comment puis-je le réparer?
OK, je l'ai eu du travail. Voici ma version (totale) du script d'exécution
Échoue pour moi comme le fait le script d'échantillon. Lipo ne peut pas créer de fichier de sortie temporaire.
Allez la cible Yourlibuniversal / Construire des phases / Exécuter script
Regardez si le script mentionne simulator_dir_32 et simulator_dir_64 Si oui, retirez les références de ces thèses et il suffit de définir une référence simulator_dir p>
J'ai eu: p> Je l'ai changé à cela: p> SIMULATOR_DIR=${SYMROOT}/${CONFIGURATION}-iphonesimulator-x86_64
...
lipo -create "${DEVICE_DIR}/lib${LIB_NAME}.a" "${SIMULATOR_DIR}/lib${LIB_NAME}.a" -output "${INSTALL_DIR}/lib${LIB_NAME}Universal.a"
Soyez prudent avec les en-têtes. Si les en-têtes ont des paramètres / architecture des informations spécifiques (disons, de la configuration), les en-têtes ne seront cohérents que par la dernière version, et toutes les constructions ne sont pas toutes. Pour une solution de contournement, voir est-il sûr de construire la bibliothèque CURL comme multiple arche? . Vous pouvez utiliser la même solution de contournement pour OpenSSL.