Я пытаюсь создать приложение OSX OCR C ++, используя openFrameworks (0.9.0) с Xcode 7.
Библиотека OCR — это Tesseract, для которой требуется Leptonica, и я установил их через Homebrew. Tesseract скомпилирован и связан как статическая библиотека (файл .a), а Leptonica добавляется в проект путем добавления только 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)
Кажется, что компилятор ссылается на макрос как определение аргумента в функции, но я не знаю, как обрезать это соединение. Кто-нибудь может дать какое-нибудь предложение о том, как решить эту проблему?
Я только что столкнулся с этой проблемой — кажется, что это можно преодолеть, просто отменив макрос с помощью:
#undef fract1
в вашем коде.
Других решений пока нет …