【问题标题】:OpenCv - iOS MapKit conflictOpenCv - iOS MapKit 冲突
【发布时间】:2012-01-24 13:55:35
【问题描述】:

我正在尝试在我的 iOS 项目中使用 OpenCv 2.3.1。但它与 iOS MapKit 冲突。上面写着:

/iPhoneOS5.0.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKGeometry.h:135:错误:未在此范围内声明“isinf”

函数 'isinf' 似乎在 MapKit 以及 OpenCv 库中实现。如果我删除对 MapKit 的所有引用,OpenCv 正在我的 iOS 项目中工作。但我两者都需要?我能做些什么?

为了在我的 iOS 项目中包含 OpenCv,我遵循了本教程: http://aptogo.co.uk/2011/09/opencv-framework-for-ios/

【问题讨论】:

    标签: iphone ios xcode opencv


    【解决方案1】:

    在 Objective-C++ 项目中使用 MapKit 时,这似乎是已知的 problem。请注意,它与 OpenCV 无关。

    isinfmath.h 中被声明为宏,但在 Objective-C++ 项目中,#includes , isinf 是 #undef'd 并且 std::isinf 被声明为包装器。

    解决方法是在 #import MKGeometry.h 或任何其他 MapKit 标头之前添加此行:

    using namespace std;
    

    【讨论】:

    • 如果您正在处理头文件,请删除所有 MapKit 包含的内容,然后向前声明所需的类和协议。
    【解决方案2】:

    您的问题不在这些库之间,因为 isinf 是在数学库中声明的(使用 -lm 编译)。

    isinf 的手册页告诉包含 math.h :

    #include

    您的系统包含哪些路径?

    【讨论】:

      猜你喜欢
      • 2012-09-10
      • 2019-12-25
      • 2012-08-05
      • 2023-03-24
      • 2016-12-19
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多