Я пишу многоразовую статическую библиотеку для iPhone, следуя указанным указаниям here.Не размещайте символы из используемой библиотеки в собственной статической библиотеке
Я хочу использовать minizip
в своей библиотеке внутри, но не хочу раскрывать ее пользователю.
Должно быть возможно, чтобы пользователь включил мини-диск самостоятельно, возможно, другую версию, а не вызывал столкновения с моей «внутренней» версией мини-диска.
Возможно ли это?
Edit:
Я попытался добавить -fvisibility=hidden
дополнительные флаги компилятора для minizip файлов и изменение функций быть __private_extern__
и __attribute__((visibility("hidden")))
, но она по-прежнему кажется, производит определенные внешние символы:
00000918 T _unzOpen
0000058e T _unzOpen2
00001d06 T _unzOpenCurrentFile
00001d6b T _unzOpenCurrentFile2
...
Редакция № 2:
По-видимому, обозначенные символами символы нотации, которые никогда не происходят, когда Xcode создает источники, поскольку он добавляет параметр -c («Скомпилировать или собрать исходные файлы, но не ссылаться».)
Можете ли вы/хотите изменить внутреннюю копию мини-диска, а поддерживает ли iPhone двухуровневое пространство имен символов Mach-O? Я ожидаю, что ответ на оба должен быть да. – ephemient
Я готов изменить свою копию, конечно. Может быть, я мог бы просто иметь все символы, предварительно добавленные с префиксом, который я использую для своей библиотеки, каким-то образом?Я бы не прочь сделать my_ <имя пользователя minizip func>. Я не знаю, поддерживаются ли двумерные пространства имен символов на iPhone. –
Просто для будущего Googler's, вы можете увидеть это, это может быть полезно: http://stackoverflow.com/a/14863432/311567 – dashesy