Stripped bibliothèque signifie uniquement que les symboles de débogage ont été supprimés. Le reste de la bibliothèque est en place. Le problème que vous pourriez rencontrer en liant à une telle bibliothèque est un avertissement de l'éditeur de liens concernant les symboles de débogage manquants. Un autre problème que vous pourriez rencontrer avec une bibliothèque dépouillée est le débogage sans les symboles de débogage appropriés, c'est un peu amusant. À la question des symboles externes/non-externes (voulez-vous dire exportés?), Si vous liez à la bibliothèque statique, il n'a pas besoin de définir des 'exports' car il est lié à votre code juste comme un gros fichier objet. Liaison à la bibliothèque dynamique, diffère légèrement selon la plate-forme qui vous intéresse. Sur Windows, votre DLL doit déclarer la fonction que vous souhaitez utiliser comme (declspec) __dllexport
. Sur linux si la mémoire me sert, il n'y a pas besoin de déclarer quoi que ce soit de ce genre et vous pouvez utiliser vos fonctions du fichier .so comme si elles seraient dans votre code, de manière similaire aux bibliothèques statiques.
Mise à jour:
Alex, je ne suis pas sûr à 100%, mais je crois, ce que j'ai écrit sur Linux applique à OS X dans ce cas. Tant que vous avez un fichier d'en-tête avec des déclarations de fonction, vous devriez pouvoir les utiliser correctement. Si vous n'avez pas certaines fonctions dans le fichier d'en-tête fourni, mais que vous avez accès aux sources, vous pouvez créer les vôtres. C'est cependant une assez mauvaise idée, puisque les auteurs du SDK ne voulaient pas vous donner accès à ces fonctions et ne les ont pas ajoutés aux fichiers d'en-tête publics, ils sont donc libres de modifier leurs fonctionnalités comme ils le souhaitent à tout moment , vous laissant potentiellement avec le code non-travail et un besoin de réécrire/re-concevoir certaines choses. La même chose s'applique à toutes les fonctions «sans papiers», elles peuvent être modifiées ou supprimées et si cela vous cause un problème, vous êtes la seule personne coupable, et la seule personne qui s'en soucierait. Procéder avec prudence.
Désolé, je ne suis pas très précis. C'est un framework OSX (donc une bibliothèque dynamique). La bibliothèque n'exporte que certains symboles - la plupart d'entre eux sont «non externes». Je me demande si je peux avoir accès à ces symboles non externes. –