2011-12-20 81 views
2

我想在我的iOS項目中使用OpenCv 2.3.1。但它與iOS MapKit衝突。它說:OpenCv - iOS MapKit衝突

/iPhoneOS5.0.sdk/System/Library/Frameworks/MapKit.framework/Headers/MKGeometry.h:135:錯誤: 'isinf' 沒有在此範圍

函數聲明「 isinf'似乎在MapKit以及OpenCv庫中實現。如果我刪除所有對MapKit的引用,OpenCv正在我的iOS項目中工作。但我需要兩個?我能做什麼?

對於包括OpenCV的在我的iOS項目我也跟着這個教程: http://aptogo.co.uk/2011/09/opencv-framework-for-ios/

回答

5

在Objective-C++項目中使用MapKit時,這似乎是已知的problem。請注意,這與OpenCV無關。

isinf被聲明爲在math.h宏但在一個Objective-C++項目,該項目來#include <CMATH>,isinf是#undef'd和std::isinf被聲明不是作爲一個包裝。

一種解決方法是加入這行你#IMPORT MKGeometry.h或任何其他MapKit頭前:

using namespace std; 
+0

如果你在你的頭文件的工作,刪除所有MapKit包括,只是前進聲明所需的類和協議。 – Maurizio 2012-08-24 17:20:57

+0

謝謝你Summerhill :) – x4h1d 2014-06-24 07:36:17

0

你的問題不在於這些庫之間,因爲isinf在數學庫中聲明(使用-lm編譯)。

isinf的手冊頁告訴包括math.h中:

 
#include <math.h> 

你的系統是什麼include路徑?