J'ai une application qui lie à ma bibliothèque statique. Je viens d'ajouter le code d'accessibilité d'Apple à la bibliothèque, mais cela a empêché l'application de se lier (même si l'application n'utilise pas le code d'accessibilité, ni ne l'inclut indirectement, en plus, Reachability.m est contenu dans la bibliothèque. la section Compiler Sources de la bibliothèque).Comment lier avec une bibliothèque statique qui elle-même lie avec une bibliothèque dynamique?
J'ai donc ajouté -ObjC à d'autres indicateurs de liens dans l'application et cela a résolu les erreurs de liaison pour l'accessibilité. Toutefois, la bibliothèque utilise également ZipArchive et l'ajout de l'indicateur de lien -ObjC a provoqué des erreurs de liaison liées à cela.
Alors, que puis-je faire? Laisser -ObjC désactivé et Reachability ne lient pas, l'incluent et ZipArchive ne lient pas. Y a-t-il une solution?
Exemple erreur de liens ZipArchiev:
Undefined symbols for architecture arm64:
"_deflate", referenced from:
_zipWriteInFileInZip in libMyLibrary.a(zip.o)
_zipCloseFileInZipRaw in libMyLibrary.a(zip.o)
Exemple erreur de liens joignabilité:
Undefined symbols for architecture arm64:
"_SCNetworkReachabilityGetFlags", referenced from:
-[Reachability connectionRequired] in libMyLibrary.a(Reachability.o)
-[Reachability currentReachabilityStatus] in libMyLibrary.a(Reachability.o)
La bibliothèque statique est en cours de construction avec le drapeau -ObjC et les liens avec libz.1.2.5.dylib
J'ai effectivement une solution que j'ai trouvée après avoir publié ceci - je peux ajouter l'indicateur -ObjC à l'application et lier l'application avec libz.1.2.5.dylib. Mais l'OMI n'est pas un bon découplage - ma bibliothèque statique va être distribuée et utilisée par les autres applications et le fait qu'elle utilise libz devrait être transparent pour eux et ils ne devraient pas avoir à se lier s'ils se lient déjà à ma bibliothèque . Y a-t-il un moyen de résoudre le problème de liaison sans que les applications aient à lier à la fois ma bibliothèque statique et la bibliothèque dynamique libz?
Avez-vous joignabilité lié à votre binaire dans Xcode? –
L'accessibilité n'est pas une bibliothèque, son code source (fourni par Apple) – Gruntcakes
Oui mais vous devez toujours vous assurer que le fichier d'implémentation est lié à la source de l'application –