私は cocoapods と libharu を介して OpenCV を使用しています。どちらも libpng を使用しています。libpng を使用するために libharu 静的ライブラリに opencv.framework を含めることができませんでした。
すべてのシンボルの名前を変更する必要がありますか、または同じ libpng を使用する方法はありますか?
私は cocoapods と libharu を介して OpenCV を使用しています。どちらも libpng を使用しています。libpng を使用するために libharu 静的ライブラリに opencv.framework を含めることができませんでした。
すべてのシンボルの名前を変更する必要がありますか、または同じ libpng を使用する方法はありますか?
libpng-1.6.0 から、構成オプション "--with-libpng-prefix=FOO_" を使用して、エクスポートされたすべてのシンボルにプレフィックスを付けるように libpng を構成できます ("configure" スクリプトを使用する場合)。ここで、FOO_ は任意の文字列です。文字で始まり、大文字と小文字、数字、およびアンダースコアのみを含む (つまり、C 言語の識別子)。これにより、一連のマクロが pnglibconf.h に作成されるため、これはアプリケーションに対して透過的です。それらの関数呼び出しは、変更された名前を使用するようにマクロによって変換されます。
基本的に、独自の libpng を構築する際に、エクスポートされたすべてのシンボルの名前を変更します。
私は個人的にこの機能をテストしていません。
サード パーティの静的ライブラリは、他のサード パーティの静的ライブラリ自体をリンクしないでください。すべてのライブラリは、最後のアプリケーション リンク ステップで最後に一緒にリンクする必要があります。cocoapod の仕様で、ある静的ライブラリに別のライブラリを含めるように要求されている場合、それは誤りであり、修正する必要があります。
詳細については、この質問とそれがリンクしている質問を参照してください。