Lorsque je regarde ma fenêtre de résultats de construction, il y a des entrées en double pour chaque compilation .m, Precompile .pch et Link.Pourquoi Xcode compile-t-il deux fois mon code, entraînant des erreurs de liens pour les globals?
Chaque fois que j'essaie d'ajouter une constante globale, même statique, j'obtiens une erreur de l'éditeur de liens. Dans la phase de liaison, je peux voir qu'une exécution est pour armv6 et l'autre pour armv7 (lors de la compilation pour un périphérique iOS).
Toutefois, il n'y a pas de duplication ou d'erreur de lien lors de la compilation pour le simulateur iOS.
Est-ce un problème (au-delà du problème évident des erreurs de l'éditeur de liens)? Si oui, cela va-t-il causer des problèmes de performance? Comment puis-je rectifier cela?
Il n'y a rien de mal avec les constantes globales, juste des variables globales. Je préfère utiliser une const statique pour ces constantes globales plutôt que #define, car elle permet de définir le type. – Jordan
Cependant, je pensais que le mot-clé statique empêcherait le global d'être défini dans d'autres fichiers? – Jordan
@Jordan, je ne pense pas que 'static' le rende meilleur. Vous devez faire const globalement comme le fait 'C', avec' extern' –