5

我正在尝试将新的 OpenCV 块与 Cinder 0.8.2 一起使用。我使用 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 回答