5

Cinder 0.8.2 で新しい OpenCV ブロックを使用しようとしています。TinderBox を使用してユーザー ディレクトリのどこかにプロジェクトをセットアップし、基本的なビデオ キャプチャ ルーチンをセットアップしようとしました。OpenCv ブロックをグループとしてプロジェクトに追加しました。

cv::Mat input( toOcv( capture.getSurface() ) )

このコードを追加すると、次のエラーが発生しました

Undefined symbols:
  "cv::fastFree(void*)", referenced from:
      cv::Mat::release()    in ColourDanceApp.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

上記のコードを分解しました

Surface frame; 
frame = mCap.getSurface(); 
cv::Mat matrix; 
matrix = toOcv( frame ); 
cv::Mat input( matrix );

そして、次の場所でこのエラーが発生したことがわかりました:

cv::Mat matrix; (and a whole bunch of errors)

私がC++を行ってからしばらく経ちましたが、OpenCVの例からほとんど取られたコードとして、プロジェクトのセットアップの問題であると結論付けています。そこまで行ったという事実は、Cinder パスが優れていることを示しています。下には助けがない

4

1 に答える 1

3

これは古い質問ですが、ここに解決策があります

http://forum.libcinder.org/topic/how-to-use-cinderblocks-in-xcode

1)ユーザー ヘッダー検索パスを次のように設定します。

"$(CINDER_PATH)/blocks/opencv/include"

2)他のリンカー フラグを設定して、使用する .a ファイルを含めます。例えば:

"$(CINDER_PATH)/blocks/opencv/lib/macosx/libopencv_core.a"

Github からダウンロードした最新バージョンの Cinder で動作します。

于 2012-03-20T23:19:33.420 に答える