2013-08-21 35 views
1

我想爲我正在構建的OSX應用程序使用OpenFrameworks。但是,我需要包含一些使用C++ OpenCV命令的現有代碼,例如CV :: imread()。在OpenFrameworks中使用OpenCV C++命令Xcode OSX項目

Xcode鏈接器拋出錯誤Undefined symbols for architecture i386: "cv::imread(std::string const&, int)。起初,我嘗試使用inxOpenCv中的現有OpenCV代碼,然後像之前的非OpenFrameworks項目一樣使用OpenCV框架。這兩種方法都無法解決鏈接問題。

據我所知道的,問題是,OpenCV的與的libC++編譯器編譯,同時在了openFrameworks與的libstdC++編譯器編譯。

  • This presentation顯示瞭如何在OpenFrameworks中使用C++ OpenCV命令,但它是在Windows下,而不是一個詳細的帳戶。
  • This SO Question意味着OpenCV可以在libstdC++下重新編譯,但是給出的解決方案是針對iOS的,並且引用的make文件對於OSX/linux不存在。

在OSX下,OpenFV C++命令是否可以使用OpenFrameworks?

+0

你可以發佈到github嗎?很難說,不看項目/代碼。 –

回答

2

請使用Kyle McDonald's ofxCv插件,它是openframeworks opencv的一個更好的接口。它包括Utilities從ofImage的cv::Mat和背部例如或helpers轉換繪製cv::Mat直接在應用程序中的:

#include "testApp.h" 

using namespace ofxCv; 
using namespace cv; 
Mat img; 
void testApp::setup() { 
    img = imread("yourImage.png");//make sure the path is correct 
} 

void testApp::update() { 
} 

void testApp::draw() { 
    drawMat(img,0, 0); 
} 

此外,您Undefined symbols for architecture i386:錯誤意味着你可能對64位(64位)OpenCV的鏈接。 dylib文件,而不是i386(32位)。