Xcode でいくつかのコマンドライン ユーティリティを作成しています (プレーン C、Cocoa なし)。私はそれらすべてにカスタマイズしたバージョンの libpng を使用してもらいたいです。また、すべての実行可能ファイル間でライブラリの 1 つのコピーを共有することでスペースを節約したいと考えています (再配布.dylib
してもかまいません)。
libpng エクスポート シンボルを取得するために魔法をかける必要がありますか?
「Link Binary With Libraries」はフェーズリンクを静的に構築しますか?
Apple のドキュメントでは、実行時のライブラリのロードdlopen
について .
私はそれを理解したと思います:
32/64 ビットの実行可能ファイルと 32 ビットのライブラリをビルドしたため、libpng が正しくリンクされませんでした。ライブラリと実行可能ファイルのビルド設定は一致する必要があります。
libpng の config.h には、次のような大量の定義が必要です。
#define FEATURE_XXX_SUPPORTED
"Link Binary With Libraries"ビルド フェーズは動的ライブラリを適切に処理し、アプリケーション バンドルから
DYLD_FALLBACK_LIBRARY_PATH
をロードするには環境変数が必要です。.dylib