2011-12-20 16 views
2

私のiOSプロジェクトでOpenCv 2.3.1を使用しようとしています。しかし、それはiOS MapKitと競合しています。それは言います:OpenCv - iOS MapKit conflict

/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/

答えて

5

Objective-C++プロジェクトでMapKitを使用している場合、これは既知のように見えます。problem OpenCVとは関係ないことに注意してください。

isinfisinfランキングのundef'dとstd::isinfあり、math.hにおけるマクロとしてではなく<cmath>との#includeのObjective-C++プロジェクトの中で宣言されるラッパーとして代わりに宣言されています。

回避策は、あなたがMKGeometry.hまたは他のMapKitヘッダのいずれかを#IMPORTする前にこの行を追加することです:

using namespace std; 
+0

あなたのヘッダファイルで作業している場合は、すべてのあなたのMapKitを削除するだけで、前方含まれており、必要なクラスとプロトコルを宣言してください。 – Maurizio

+0

ありがとうSummerhill :) – x4h1d

0

ISINFは、数学ライブラリ(コンパイル-lm使用)で宣言されているので、あなたの問題は、これらのライブラリの間ではありません。

ISINFのmanページはのmath.hを含めるように指示しています

 
#include <math.h> 

あなたのシステムがどのようなものにはパスが含まれていますか?