Como faço para criar uma biblioteca dinâmica (dylib) com o Xcode?

Eu estou construindo alguns utilitários de linha de comando no Xcode (simples C, sem cacau). Eu quero que todos eles usem minha versão customizada de libpng, e eu quero economizar espaço compartilhando uma cópia da biblioteca entre todos os executáveis ​​(eu não me importo de re-distribuir.dylib com eles).

Preciso fazer alguma mágica para obter símbolos de exportação libpng?

Faz"Link binário com bibliotecas" construir link de fase estaticamente?

Os documentos da Apple mencionam o carregamento de bibliotecas em tempo de execução comdlopen, mas como posso fazer o Xcode criar executáveis ​​sem reclamar de símbolos ausentes?

Eu acho que descobri:

A libpng não estava ligando corretamente, porque eu criei executáveis ​​de 32/64 bits e uma biblioteca de 32 bits. As configurações de construção da biblioteca e os executáveis ​​devem corresponder.

config.h da libpng precisa ter toneladas de define como#define FEATURE_XXX_SUPPORTED

"Link binário com bibliotecas" fase de construção manipula bibliotecas dinâmicas muito bem, eDYLD_FALLBACK_LIBRARY_PATH variável ambiental é necessária para o carregamento.dylibs do pacote de aplicativos.

questionAnswers(4)

yourAnswerToTheQuestion