web-dev-qa-db-fra.com

Que fait l'indicateur d'éditeur de liens -all_load?

Je ne trouve nulle part ce que fait l'indicateur -all_load lors de la compilation du code Objective-C.

J'ai des problèmes pour télécharger des fichiers binaires sur Apple, ils disent que c'est parce que je n'ai pas utilisé ce drapeau, mais mon code est compilé même sans lui.

Quelqu'un peut-il m'aider avec ça?

Merci

121
Guy Ephraim

Il est probablement lié à cette note technique https://developer.Apple.com/library/content/qa/qa1490/_index.html

IMPORTANT: pour les applications 64 bits et iPhone OS, il existe un bogue lié à l'éditeur de liens qui empêche -ObjC de charger des fichiers objets à partir de bibliothèques statiques ne contenant que des catégories et pas de classes. La solution consiste à utiliser les indicateurs -all_load ou -force_load. -all_load oblige l'éditeur de liens à charger tous les fichiers objets de chaque archive qu'il voit, même ceux sans code Objective-C. -force_load est disponible dans Xcode 3.2 et versions ultérieures. Il permet un contrôle plus fin du grain du chargement des archives. Chaque option -force_load doit être suivie d'un chemin d'accès à une archive, et chaque fichier objet de cette archive sera chargé.

142
Shaji