Leptonica 与 Xcode 框架冲突

Xin*_*lei 5 c++ ocr macos xcode leptonica

我正在尝试使用 openFrameworks (0.9.0) 和 Xcode 7 构建 OSX OCR C++ 应用程序。

OCR 库是 Tesseract,它需要 Leptonica,我已经通过 Homebrew 安装了这两个库。Tesseract 被编译和链接为一个静态库(.a 文件),并且 Leptonica 被添加到项目中,方法是根据链接上的说明仅添加 allheaders.h 。

问题是:在我添加 之后allheaders.h,Xcode 自动将一个参数匹配allheaders.h到另一个宏定义中FixMath.h,这是 OSX CarbonCore 框架中的一个文件。这会在编译过程中导致错误。

allheaders.h冲突中的线是:

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

FixMath.h冲突中的宏是:

#define fract1 ((Fract) 0x40000000L)

似乎编译器将宏引用为函数中参数的定义,但我不知道如何切断这种联系。任何人都可以就如何解决这个问题提出一些建议吗?

Jos*_*osh 2

我刚刚也遇到了这个问题 \xe2\x80\x93 似乎可以通过简单地取消定义宏来解决这个问题:

\n\n
#undef fract1\n
Run Code Online (Sandbox Code Playgroud)\n\n

在你的代码中。

\n