iOS用のプロジェクト(Windowsで記述されている)をクロスコンパイルしようとしていますが、これはopenCVに基づいています。そして、これらのクロスコンパイルされたopenCVライブラリを特定のアプリケーション(testAppと呼ばれる)に使用しようとしています。
私は最初、iOS用のopenCVを正常にクロスコンパイルすることができました。次に、これらのライブラリを使用して、アプリケーションtestApp(一部のopenCV機能も使用)によって使用されるtestLib.aという別のライブラリを作成しました。
testLib.aは正常にコンパイルされましたが、testAppの場合、testLib.aとopenCVライブラリ(.aファイル)の両方に依存関係を追加する必要がありました。testAppをコンパイルしようとすると、次のエラーが発生します-
ld:/Users/suri/Projects/testLib/lib/Debug/libopencv_core.a(convert.o)および/ Users / suri/Projectsの重複シンボルcv::split(cv :: Mat const&、cv :: Mat *)アーキテクチャi386の場合は/testApp/libs/testLib.a(convert.o)
このエラーは、openCVライブラリがtestAppだけでなくopentestLibによって追加されたために発生している可能性があります。私の質問は、プロジェクトを再編成する必要がありますか、それともこの問題を修正する他の方法がありますか?
「split」関数が実際にtestLibで使用されている可能性がある場所を見つけようとしましたが、呼び出されていないようです。また、testLibとtestAppのすべての.hをチェックしましたが、すべて「ifndef」マクロがあります。