gpt4 book ai didi

ios - 带 libc++ 的 Tesseract-OCR 3.02

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:22:57 26 4
gpt4 key购买 nike

Xcode 4.6、iOS SDK 6.1、tesseract-ocr 3.02

由于最新的 OpenCV 版本是使用 libc++ 构建的,而 tesseract-ocr 是使用 libstdc++ 构建的,因此它们不能在一个 xcode 项目中一起使用。
所以,我正在尝试使用 libc++ 构建 tesseract。使用脚本 here (将基础 sdk 和部署目标更新到 6.1),tesseract 构建得很好,一旦 C++ 标准库设置为编译器默认值,它就可以在我的 xcode 项目中工作。然后,根据答案 here,我尝试更改脚本以使用 libc++ 构建它.我将 CXX 更改为指向 clang++,并将 -stdlib=libc++ 添加到 CXXFLAGS
结果是脚本成功,库构建完成,但是在 xcode 中选择 libc++ 作为 C++ 标准库时,我遇到了很多链接器错误,项目构建失败。当标准库设置为编译器默认值时,新库仍然有效(就像它定期构建时一样)。

我错过了什么?

最佳答案

好的,所以我的问题是,在我的项目中添加和删除对库的引用几次后,我的库搜索路径变得一团糟。另外,我没有将新的“include”文件夹(在构建 tesseract 时创建)添加到用户 header 搜索路径。

所以,快速回顾一下,为了使用 libc++ 构建 tesseract-ocr,以便它可以与更新的 OpenCV 版本一起工作:

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

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

非常感谢 this回答,这让我一路顺风。

关于ios - 带 libc++ 的 Tesseract-OCR 3.02,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16323316/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com