Как мне создать динамическую библиотеку (dylib) с Xcode?
Я строю несколько утилит командной строки в Xcode (обычный C, без какао). Я хочу, чтобы все они использовали мою настроенную версию libpng, и я хочу сэкономить место, разделяя одну копию библиотеки среди всех исполняемых файлов (я не против перераспределения.dylib
с ними).
Нужно ли использовать магию для получения экспортных символов libpng?
Есть ли"Связь бинарных с библиотеками" построить фазовую ссылку статически?
Документы Apple упоминают о загрузке библиотек во время выполнения сdlopen
, но как я могу сделать Xcode создать исполняемый файл, не жалуясь на отсутствующие символы?
Я думаю, что я понял это:
libpng не связывался должным образом, потому что я создал 32/64-битные исполняемые файлы и 32-битную библиотеку. Настройки сборки библиотеки и исполняемых файлов должны совпадать.
В config.h libpng должно быть множество определений, таких как#define FEATURE_XXX_SUPPORTED
"Связь бинарных с библиотеками" фаза сборки прекрасно справляется с динамическими библиотеками, иDYLD_FALLBACK_LIBRARY_PATH
переменная окружения необходима для загрузки.dylib
из пакета приложений.