Създавам няколко помощни програми от командния ред в Xcode (обикновен C, без какао). Искам всички те да използват моята персонализирана версия на libpng и искам да спестя място, като споделям едно копие на библиотеката сред всички изпълними файлове (нямам нищо против да разпространявам отново .dylib
с тях).
Трябва ли да направя някаква магия, за да получа символи за експортиране на libpng?
„Свързване на двоични файлове с библиотеки“ създава ли статично фазова връзка?
В документите на Apple се споменава зареждане на библиотеки по време на изпълнение с dlopen
, но как мога да накарам Xcode да създава изпълним файл, без да се оплаквам от липсващи символи?
Мисля, че разбрах:
libpng не се свързваше правилно, защото създадох 32/64-битови изпълними файлове и 32-битова библиотека. Настройките за компилация на библиотеката и изпълнимите файлове трябва да съвпадат.
config.h на libpng трябва да има много дефиниции като
#define FEATURE_XXX_SUPPORTED
Фазата на изграждане на „Свързване на двоични файлове с библиотеки“ се справя добре с динамичните библиотеки и
DYLD_FALLBACK_LIBRARY_PATH
променливата на околната среда е необходима за зареждане на.dylib
s от пакета приложения.