5

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

OCR 库是需要 Leptonica 的 Tesseract,我已经通过 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)

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

4

1 回答 1

1

我也遇到了这个问题——看来这可以通过简单地取消定义宏来解决:

#undef fract1

在你的代码中。

于 2017-02-17T06:37:58.673 回答