当我尝试构建我的 iOS 应用程序时,出现以下链接器错误。将 C++ 标准库设置为“libstdc++”可能会修复它,但我不确定如何在 QT Creator 中执行此操作。
Undefined symbols for architecture armv7:
"tesseract::TessBaseAPI::End()", referenced from:
Ocr::~Ocr() in ocr.o
"tesseract::TessBaseAPI::SetImage(Pix const*)", referenced from:
Ocr::recognize(char const*) in ocr.o
"tesseract::TessBaseAPI::GetUTF8Text()", referenced from:
Ocr::recognize(char const*) in ocr.o
"_pixRead", referenced from:
Ocr::recognize(char const*) in ocr.o
"_pixDestroy", referenced from:
Ocr::recognize(char const*) in ocr.o
"tesseract::TessBaseAPI::TessBaseAPI()", referenced from:
Ocr::Ocr(char const*) in ocr.o
"tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool)", referenced from:
Ocr::Ocr(char const*) in ocr.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
.pro文件的相关部分
QMAKE_CXXFLAGS = -stdlib=libstdc++
macx: LIBS += -L$$PWD/TesseractOCR/lib/ -llept
INCLUDEPATH += $$PWD/TesseractOCR/include
DEPENDPATH += $$PWD/TesseractOCR/include
macx: PRE_TARGETDEPS += $$PWD/TesseractOCR/lib/liblept.a
macx: LIBS += -L$$PWD/TesseractOCR/lib/ -ltesseract_all
INCLUDEPATH += $$PWD/TesseractOCR/include
DEPENDPATH += $$PWD/TesseractOCR/include
macx: PRE_TARGETDEPS += $$PWD/TesseractOCR/lib/libtesseract_all.a
最佳答案
构建ios时需要将macx换成ios。
我还假设您没有为 ios 交叉编译 tesseract。 Here is an article that describes that process, which also contains a link specifically for tesseract and its dependencies.
关于c++ - 为 iOS 编译时 Qt Creator Tesseract 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24854156/