Leptonica与Xcode框架冲突 我试图用XC++ 7使用OpenFrasWorks0.9.0构建OSX OCR C++应用程序。

Leptonica与Xcode框架冲突 我试图用XC++ 7使用OpenFrasWorks0.9.0构建OSX OCR C++应用程序。,c++,xcode,macos,ocr,leptonica,C++,Xcode,Macos,Ocr,Leptonica,OCR库是Tesseract,它需要Leptonica,我通过自制软件安装了这两个库。Tesseract作为静态库(.a文件)进行编译和链接,Leptonica通过根据链接上的说明仅添加allheaders.h添加到项目中 问题是:在我添加了allheaders.h之后,Xcode自动将allheaders.h中的一个参数与FixMath.h中的另一个宏定义相匹配,后者是OSX CarbonCore Framework中的一个文件。这会在编译过程中导致错误 allheaders.h中冲突的行是:

OCR库是Tesseract,它需要Leptonica,我通过自制软件安装了这两个库。Tesseract作为静态库(.a文件)进行编译和链接,Leptonica通过根据链接上的说明仅添加allheaders.h添加到项目中

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

allheaders.h
中冲突的行是:

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

FixMath.h
中冲突的宏是:

#定义fract1((Fract)0x40000000L)


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

我也遇到了这个问题–似乎可以通过以下方法简单地取消定义宏来克服这个问题:

#undef fract1

在您的代码中。

这确实有帮助-即使它似乎不是一个理想的解决方案。在我的例子中,使用FSEvents检查目录中的传入文件导致了这个问题:FSEvents仍然依赖于CarbonCore FixMath.h(即使它应该被弃用:)