Je crée une bibliothèque statique à utiliser dans les applications iPhone. Il contient un certain nombre de fichiers source qui n'exportent aucun symbole, tout ce qu'ils font est d'instancier une instance statique d'une classe qui exécute ensuite du code dans son constructeur qui enregistre diverses choses avec une classe de gestionnaire central ailleurs. Tout fonctionne correctement lorsque le code est construit dans le cadre d'une application iPhone standard, mais quand il est séparé en une bibliothèque statique, ces fichiers ne le font pas dans le binaire final de l'application et donc les constructeurs pour les instances privées qu'ils contiennent. ne pas courir, et cela provoque des problèmes. J'ai désactivé toutes les options de construction à faire avec décapage mort et ainsi de suite pour la construction de la bibliothèque statique et la construction de l'application finale.Forcer l'inclusion de fichiers d'objets de bibliothèque statiques qui n'exportent aucun symbole (GCC/iPhone)
Je me suis heurté à ce problème sur le compilateur Metrowerks il y a quelques temps, mais dans ce cas, il se produisait même lorsque le code était intégré dans une seule application sans bibliothèques intermédiaires. La solution était assez simple: il suffit d'utiliser __declspec(force_export)
sur les instances de classe privées et tout va bien.
Existe-t-il un équivalent pour GCC/iPhone? J'utilise Xcode 3.1.4 avec GCC 4.2 et cible iPhone OS 3.1. Alternativement, existe-t-il un moyen de dire à l'application de lier dans chaque fichier objet de la bibliothèque statique, qu'elle soit explicitement référencée ou non? J'ai confirmé à l'aide de ar
que l'ensemble complet des fichiers objets le fait dans la bibliothèque statique.
Merci d'avance.
Fantastique! Cela a fait exactement ce qui était nécessaire :-). –