Question

J'ai des liens avec libx qui Liba et libY qui a également des liens avec Liba. Maintenant, je dois utiliser libX et libY dans le même projet, donc ils sont liés dans la même application. Pour les besoins du raisonnement, disons que Liba est de 5 Mo et je construis une application iOS.

Je l'ai lu ici qu'il n'y a aucun conflit entre les libs dans une telle situation parce que le Liba dans cet exemple sera inclus dans les deux libX et libY. Mais cela permettra également d'augmenter la taille de l'application significative de 10 Mo, au lieu de 5 MB.

Qu'est-ce que je dois faire pour ne pas inclure Liba deux fois dans l'App? Y at-il un commutateur de compilateur pour cela?

En dehors de cela, est-ce que je peux faire en ce qui concerne la façon dont les bibliothèques sont configurés et divisé en projets Xcode, de sorte que je finis avec Liba étant liée une seule fois? Par exemple, puis-je construire libX et libY sans lien vers Liba, en supposant que le projet final ajoutera Liba comme une bibliothèque liée?

Normalement, je voudrais simplement construire Liba comme bibliothèque dynamique, mais pour autant que je comprends que n'est pas autorisé sur iOS.

Était-ce utile?

La solution

il est AFAIK faux de dire que « les liens libx à Liba » pour les bibliothèques statiques. Bibliothèque statique est juste une archive des fichiers objets. liaison réelle accuse en liant l'application. libs donc pas en double.

Autres conseils

supprimer les phases de liaison (possible) des dépendances, puis liez toutes les bibliothèques nécessaires avec l'exécutable final.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top