2 votes

Symboles non définis dans le cadre lors de la création d'une application séparée de la bibliothèque et de la partie applicative

J'ai une application séparée en une partie bibliothèque et une application qui est liée à la bibliothèque. La bibliothèque utilise AFNetworking et nécessite donc SystemConfiguration y MobileCoreServices cadres. Ils sont ajoutés au processus de construction et la bibliothèque se construit correctement.

Pourquoi dois-je ajouter les mêmes frameworks à ma partie Application afin de construire correctement et de ne pas voir d'erreurs de liaison ?

N'est-il pas suffisant d'établir un lien uniquement avec la bibliothèque ?

2voto

trojanfoe Points 61927

Je suppose que la bibliothèque est une bibliothèque statique. Vous n'ajoutez les frameworks que lors de la construction de la bibliothèque statique afin d'accéder aux fichiers d'inclusion ; vous n'établissez pas de liens avec les frameworks. En effet, une bibliothèque statique n'est pas liée lorsqu'elle est construite ; il s'agit simplement d'une collection de fichiers objets. Essayez ceci à partir de la ligne de commande pour lister les fichiers objets :

$ ar t /path/to/my/library.a

Lorsque la bibliothèque statique est liée au binaire de l'application, vous devez fournir les bibliothèques et les frameworks des deux, comme si les fichiers objets de la bibliothèque statique avaient fait partie de l'arborescence des sources du binaire de l'application.

Considérez la bibliothèque statique comme une simple collection de fichiers d'objets et vous devriez comprendre.

1voto

Amar Points 13103

Les cadres iOS d'Apple contiennent bibliothèques dynamiques partagées . AFAIK, lorsque notre application est lancée, un processus est créé et les bibliothèques dynamiques partagées avec lesquelles le processus est lié sont chargées dans la mémoire. Si les bibliothèques dynamiques partagées sont déjà chargées en mémoire (pour un autre processus applicatif), elles sont partagées avec notre processus applicatif. Il s'agit d'une activité par processus.

Étant donné que la bibliothèque statique est liée au binaire de l'application elle-même et ne crée pas de processus distinct, il devient nécessaire d'informer le moteur d'exécution de charger les cadres avec lesquels la bibliothèque statique est liée. Il est donc logique d'ajouter les cadres utilisés par la bibliothèque statique dans l'application également.

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