Jak utworzyć dynamiczną bibliotekę (dylib) z Xcode?

Buduję kilka narzędzi wiersza poleceń w Xcode (zwykły C, bez Cocoa). Chcę, aby wszystkie z nich używały mojej dostosowanej wersji libpng i chcę zaoszczędzić miejsce, udostępniając jedną kopię biblioteki wśród wszystkich plików wykonywalnych (nie mam nic przeciwko ponownemu rozpowszechnianiu.dylib z nimi).

Czy muszę zrobić trochę magii, aby uzyskać libpng symbole eksportu?

Robi„Link Binary With Libraries” zbudować link fazy statycznie?

Dokumenty Apple wspominają o ładowaniu bibliotek w czasie wykonywaniadlopen, ale jak mogę sprawić, by Xcode tworzył plik wykonywalny bez narzekania na brakujące symbole?

Myślę, że zrozumiałem:

libpng nie łączyło się poprawnie, ponieważ zbudowałem 32/64-bitowe pliki wykonywalne i 32-bitową bibliotekę. Ustawienia kompilacji biblioteki i plików wykonywalnych muszą być zgodne.

config.h libpng musi mieć mnóstwo definicji#define FEATURE_XXX_SUPPORTED

„Link Binary With Libraries” faza kompilacji dobrze obsługuje dynamiczne biblioteki iDYLD_FALLBACK_LIBRARY_PATH zmienna środowiskowa jest niezbędna do załadowania.dylibs z pakietu aplikacji.

questionAnswers(4)

yourAnswerToTheQuestion