首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有libc++的Tesseract-OCR 3.02

带有libc++的Tesseract-OCR 3.02
EN

Stack Overflow用户
提问于 2013-05-01 17:37:06
回答 2查看 3K关注 0票数 3

Xcode 4.6,iOS SDK6.1,tesseract-ocr 3.02

由于上一个OpenCV版本是使用libc++构建的,而tesseract-ocr是使用libstdc++构建的,所以不能在一个xcode项目中一起使用它们。

因此,我正在尝试使用libc++构建tesseract。使用脚本这里 (更新base并将目标部署到6.1),可以很好地构建tesseract,并且一旦C++标准库设置为编译器默认值,它就可以在我的xcode项目中工作。我试着修改脚本,用libc++构建它,根据答案这里。我将-stdlib=libc++ CXX更改为指向clang++,并将添加到CXXFLAGS中。

结果是脚本成功了,库也构建好了,但是当选择libc++作为xcode中的C++标准库时,我得到了很多链接器错误,而项目构建失败了。当标准库设置为编译器默认值时,新库仍然工作(就像定期构建时一样)。

我遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-05 12:15:17

好的,所以我的问题是,在我的项目中添加和删除了几次对库的引用之后,我的Library搜索路径非常混乱。另外,我没有将新的"include“文件夹(在构建tesseract时创建)添加到用户头搜索路径中。

因此,简单地回顾一下,为了使用libc++构建tesseract-ocr,它可以与较新的OpenCV版本一起工作:

  • 下载轻子-1.69
  • 下载tesseract 3.02
  • 将它们排列在原始教程这里中解释的文件夹结构中。
  • 脚本下载到同一个文件夹。
  • 为相关的IOS_BASE_SDK和IOS_DEPLOY_TGT编辑脚本。
  • 编辑CXX以使用clang++:CXX="/usr/bin/clang++“
  • 编辑CXXFLAGS以libc++作为标准库: CXXFLAGS="$CFLAGS -stdlib=libc++“
  • 使用脚本并构建tesseract和leptonica。
  • 将这些库添加到xcode项目中,将"C++标准库“设置更改为libc++。
  • 确保您的“库搜索路径”设置没有指向任何旧的tesseract库库。
  • 确保您的“用户标题搜索路径”设置指向在构建新库时创建的新"include“文件夹。
  • 现在,当您尝试构建您的项目时,您将有一些丢失的头文件。只要从旧的“包括”文件夹中复制它们,就可以从tesseract和leptonica中复制。

就这样。此时,您将有一个能够同时使用新OpenCV版本和tesseract 3.02的项目。如果这是一个新项目,请不要忘记相应地编辑前缀文件,以便在OpenCV和Tesseract中包含__cplusplus,并使用它们将任何.m文件重命名为.mm

多亏了的回答,这才让我一路顺风。

票数 3
EN

Stack Overflow用户

发布于 2014-02-10 04:30:50

Tsseract OCR-iOS已被更新以处理此问题(在与libc++编译的项目(例如OpenCV)相同的项目中工作)。安装时不要忘记这些步骤:

如果您正在使用iOS7或更高版本,则链接libstdc++.6.0.9.dylib库(您的目标=> General =>链接框架和库=> + => libstdc++.6.0.9) 转到您的项目,单击项目和在选项卡中添加-lstdc++到所有的“其他链接标志”键。 *转到您的项目设置,并确保C++标准库=>编译器默认。(多亏了https://github.com/trein) 从项目根目录下的模板框架项目复制并导入tessdata文件夹。它包含"tessdata“文件。您可以在这里添加更多tessdata文件,复制它们。

*我必须将C++标准库设置为"libc++“,这样OpenCV才能编译。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16323316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档