120 votes

Quelle est la différence entre "Architectures" et "Architectures valides" dans les paramètres de construction Xcode?

Quelle est leur signification et puis-je les définir dans différentes valeurs?

118voto

Jeremy W. Sherman Points 22019

Les Architectures sont ceux que vous voulez construire, valide les architectures sont ceux que l'on avait pu concevoir un bâtiment avec votre base de code.

Alors peut-être que vous ne voulez construire votre binaire pour armv7s, mais le même code source de dresser amende pour armv7 et armv6. Donc, VALID_ARCHS = armv6 armv7 armv7s, mais vous définissez ARCHS = armv7s car c'est tout ce vous avez réellement envie de construire avec votre code.

Ou, dans Apple-ese:

ARCHITECTURES (Architectures)

Séparées par un espace liste d'identifiants. Spécifie les architectures (ABIs, processeur modèles) pour qui le binaire est ciblée. Lorsque ce paramètre de construction indique plus d'une architecture de génération, les binaires peuvent contenir de code objet pour chacun des spécifié architectures.

et:

VALID_ARCHS (Valable Architectures)

Séparées par un espace liste d'identifiants. Spécifie les architectures pour lesquelles le binaire peut être construit. Lors de la compilation, cette liste est croisé avec la valeur de ARCHS paramètre de construction; la liste indique les architectures les binaires peut s'exécuter sur. Si l'architecture qui en résulte liste est vide, la cible génère pas de binaire.

Source: Xcode Paramètre De Construction De Référence

Dans la pratique, vous laissez VALID_ARCHS seul et ne vous inquiétez pas à propos de le changer, et juste tripoter ARCHS pour définir les architectures que vous voulez construire. En règle générale, vous définissez une version de Débogage juste NATIVE_ARCH, puisque vous ne voulez construire la version de débogage pour la machine que vous allez tester, de course, de marche, et de Libérer construit pour l'éventail complet des architectures de vous plan à l'appui.

6voto

foogry Points 118

Apple document,nous savons que le binaire Xcode va construire est la liste Valid Architectures ont Architectures.

Donc ,je ne pense pas que Jeremy la réponse est juste, comme il dit:

So maybe you only want to build your binary for armv7s, but the same source code would  
compile fine for armv7 and armv6. So `VALID_ARCHS = armv6 armv7 armv7s`, but you set 
ARCHS = armv7s because that's all you actually want to build with your code.

Lorsque vous définissez VALID_ARCHS = armv6 armv7 armv7s,et définissez ARCHS = armv7s,le résultat binaire de Xcode va construire est armv7s,il ne pouvait pas compatible avec armv6/armv7.

Et si vous voulez compatible avec armv6/armv7/armv7s,vous devez définir VALID_ARCHS = armv6 armv7 armv7s et ARCHS = armv6.De cette façon , le résultat binaire de Xcode va construire est armv6, et il peut fonctionner correctement sur les deux armv6/armv7/armv7s comme processeur arm est rétro-compatible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X