J'ai quelques lignes de code de bras d'assembleur dans un fichier .s. Juste quelques routines que je dois appeler. Cela fonctionne bien lors de la construction de l'appareil, mais quand je passe à l'iPhone Simulator, je reçois des erreurs "pas de telles instructions". J'ai essayé de compiler des parties du fichier .s sous condition avec ce que je sais:Compilation conditionnelle en code assembleur (.s) pour iPhone - comment?
#if !TARGET_IPHONE_SIMULATOR
Mais l'assembleur ne reconnaît pas ces directives de préprocesseur (bien sûr) et aucune des techniques de compilation conditionnelle pour l'assembleur que je me souvenais ou trouver travaillé, donc je me gratte la tête maintenant sur la façon d'éviter la compilation de ce code assembleur lors de la construction pour le simulateur. Je ne vois pas non plus d'option de projet dans Xcode qui me permettrait de compiler le fichier ou non en fonction de la plateforme cible.
SOLVED:
Tout ce que je manquais était le bon #import dans le fichier assembleur. Je n'ai pas pensé à l'ajouter car la syntaxe de Xcode a mis en évidence une directive de préprocesseur en vert (commentaire) qui m'a fait supposer que ces commandes ne sont pas reconnues alors qu'en fait elles fonctionnent très bien.
Cela fonctionne:
#import "TargetConditionals.h"
#if !TARGET_IPHONE_SIMULATOR
... asm code here ...
#endif
Je crois que les outils invoqués par XCode utilisent le même préprocesseur pour les fichiers .s et .c (si vous n'avez pas changé les valeurs par défaut); Etes-vous sûr que vous n'avez pas fait une erreur quand vous avez essayé cela? –