1

(私はここで説明するほとんどすべてのことに慣れていません...質問が非常に基本的なものである場合はお詫びします)-Xcodeを使用して、OpenCV(動的ライブラリ)を使用していくつかのC++コードを記述しました。アルゴリズムはスムーズに実行され、同様に機能する実行可能ファイルを作成しました。ただし、それは私のコンピューターでのみ機能します。

動的ライブラリの代わりに静的ライブラリを使用する必要があることを理解しています。私はいくつかの調査を行い、ここでこれを行う方法を見つけました: http://www.shiffman.net/2011/01/23/how-to-build-opencv-static-libraries-mac-os-x/とここ: http://www.randomsequence.com/articles/opencv-snow-leopard/ .

いくつかの変更を加える必要がありましたが、「libopencv_highgui.a」などの「.a」ファイルをビルドすることができました。

ただし、ライブラリを置き換えると、コードが機能しなくなります。200 以上のエラーが発生します。これはそれらの1つです:

アーキテクチャ x86_64 の未定義シンボル: "_gzputs"、参照先: libopencv_core.a (persistence.o) の __ZL7icvPutsP13CvFileStoragePKc

ここでこの質問を検索しましたが、これは私が見つけることができる最も近いものです: Xcode での OpenCV ライブラリのリンク(まったく同じ質問ではありません)。

みんな、ありがとう!

4

1 に答える 1

2

.aからのファイルが必要です$OPENCV_BUILD_PATH/3rdparty/lib/

あなたの_gzputs質問はに属しますlibzlib.a


OpenCV 静的ライブラリとリンクするには、すべての OpenCV の依存関係をアプリケーションに追加する必要もあります。これらの依存関係のほとんどは opencv_highui モジュールに由来し、依存関係のリストはビルド構成に依存しているため、完全なリストを示すことはできません。しかし、それは自分で見つけることができます。CMakeCache.txt任意のテキスト エディターで OpenCV ビルド ディレクトリから を開き、opencv_highgui_LIB_DEPENDS行を検索します。という単語を除く、その行のすべての項目が必要ですgeneral

于 2012-06-21T00:11:53.553 に答える