2010-11-18 45 views
2

Ma situation:Lors de la création d'une application universelle, comment lier un framework avec des versions séparées 32bit et 64bit?

  • Je veux créer une application universelle des i386 et x86_64 dans Xcode 3.2.2
  • Cette application dispose d'un cadre tiers à charge.
  • Cette structure a seulement des versions séparées pour i386 et x86_64, pas de version universelle.
  • J'ai ajouté à la fois les versions i386 et x86_64 dans la section Link Binary With Libraries de ma cible.

Mon problème:

Xcode ne peut pas trouver des symboles du cadre lors de la construction d'une version x86_64. Ressemble à Xcode uniquement les symboles de recherche dans la version i386 de framework, par les arguments de ligne de commande "-framework $ FRAMEWORK_NAME".

Ma question:

Comment pourrais-je faire Xcode recherche également des symboles du cadre x86_64? Ou est-il possible de lier à une bibliothèque non universelle lors de la construction d'une application universelle?

Mon progrès:

Je suppose que la création d'une version universelle de ce cadre par lipo résout ce problème peut-être, mais si possible, je voudrais éviter cela. Parce que cela implique des changements externes.

Merci

Répondre

1

Vous pouvez créer deux versions de votre application et lipo ensemble, mais il est probablement plus facile si vous venez du cadre lui-même. Il n'y a aucune raison que vous ayez besoin d'affecter le processus de construction de la bibliothèque externe; vous pouvez simplement le faire en place dans le cadre du processus de construction de votre propre application.

0

Sinon, vous pouvez relier deux versions distinctes de votre application, et se joindre à ceux qui ont lipo.

0

Obtenir la structure pour construire la graisse (ou lipo ensemble les deux tranches) est de loin la solution la plus élégante. Y a-t-il une raison de ne pas faire ça?