2016-04-04 11 views
3

Xcode 7でopenFrameworks(0.9.0)を使用してOSX OCR C++アプリケーションを構築しようとしています。LeptonicaがXcodeフレームワークと矛盾します

OCRライブラリはLeptonicaを必要とするTesseractであり、私はHomebrewを通してこの2つをインストールしました。 Tesseractはコンパイルされ、静的ライブラリ(.aファイル)としてリンクされ、Leptonicaはthisリンクの指示に基づいてallheaders.hのみを追加することでプロジェクトに追加されます。

問題があります:allheaders.hを追加した後、Xcodeは自動的にallheaders.hの引数をFixMath.hの別のマクロ定義にマッチさせました。これはOSX CarbonCore Frameworkのファイルです。コンパイル中にエラーが発生しています。

競合allheaders.hでラインがある:

LEPT_DLL extern NUMA * numaFindPeaks (NUMA *nas, l_int32 nmax, l_float32 fract1, l_float32 fract2);

競合FixMath.hでマクロがある:

#define fract1 ((Fract) 0x40000000L)

コンパイラのようにマクロを参照しているように思え関数内での引数の定義はできますが、この接続を切断する方法はわかりません。誰もこの問題を解決する方法のいくつかの提案を与えることができますか?

答えて

1

私はあまりにも、この問題に遭遇してきた - 単純にマクロを未定義にすることによって克服することができることが表示されます:あなたのコードで

#undef fract1 

+1

これは、理想的な解決策ではないように見えても、役に立ちました。私の場合、FSEventsを使用してディレクトリ内の着信ファイルをチェックすると、FSEventsはまだCarbonCore FixMath.hに依存しています(これは廃止予定ですが、https://developer.apple.com/library/content/releasenotes/一般/ CarbonCoreDeprecations /) – paperlib