我正在尝试使用openFrameworks (0.9.0)和Xcode7构建一个OSX OCR C++应用程序。
OCR库是Tesseract,它需要Leptonica,我已经通过Homebrew安装了这两个库。this作为静态库(.a文件)进行编译和链接,并根据Tesseract链接上的说明仅通过添加allheaders.h将Leptonica添加到项目中。
问题是:在我添加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)
似乎编译器引用了Macro作为函数中参数的定义,但我不知道如何切断这种连接。有没有人能给出一些解决这个问题的建议?
发布于 2017-02-17 14:37:59
我也遇到了这个问题-看起来这个问题可以通过简单地使用以下命令取消定义宏来解决:
#undef fract1在你的代码中。
https://stackoverflow.com/questions/36394155
复制相似问题