的Xcode 4.6,iOS版SDK 6.1,正方体-OCR 3.02
自上OpenCV的版本使用的libC++建成,正方体-OCR使用的libstdC++建成,他们能够”在一个xcode项目中一起使用。
所以,我试图用libC++构建tesseract。使用脚本here(将基本sdk和部署目标更新到6.1),tesseract正在构建得很好,一旦将C++标准库设置为编译器默认值,就可以在我的xcode项目中运行。根据回答here,我尝试改变脚本以使用libC++构建它。我改变CXX指向铛++,并加入-stdlib = libc的++到CXXFLAGS。
结果是脚本成功,图书馆都建,但选择的libC++作为在Xcode C++标准库时,我得到了很多的链接错误和项目生成失败。当标准库设置为编译器默认值时(如同定期创建时),新库仍然可以工作。
我错过了什么?的Tesseract-OCR 3.02用的libC++
3
A
回答
3
好了,我的问题是,在我的项目中添加和删除引用到图书馆了几次后,我在我的库搜索路径相当混乱。此外,我没有将新的“包含”文件夹(在构建tesseract时创建)添加到用户标题搜索路径。
所以,只是一个快速回顾一下,为了使用的libC++,建立正方体,OCR,因此它可以随着新的OpenCV的版本工作:
- 下载leptonica-1.69
- 下载正方体3.02
- 排列它们在文件夹结构在原来的教程解释here
- 下载this脚本到同一文件夹。
- 编辑相关IOS_BASE_SDK和IOS_DEPLOY_TGT的脚本。
- 编辑CXX使用铛++:CXX = “在/ usr/bin中/铛++”
- 编辑CXXFLAGS使用的libC++的标准库:CXXFLAGS = “$ CFLAGS -stdlib =的libC++”
- 使用脚本和构建tesseract和leptonica。
- 添加这些库与您xcode项目,改变“C++标准库”设置为在libC++。
- 确保您的“库搜索路径”设置不指向任何旧的正方体库。
- 确保您的“用户头搜索路径”设置指向新的“包括”文件夹中创建,当你建立了新库。
- 现在,当您尝试构建项目时,您将会遇到一些缺失的头文件。只需将它们从tesseract和leptonica旧的“包含”文件夹复制即可。
就是这样。此时,您将有一个项目能够同时使用新的OpenCV版本和tesseract 3.02。如果它是一个新项目,不要忘记根据__cplusplus编辑前缀文件以包含OpenCV和Tesseract,并使用它们重命名任何.m文件。毫米
非常感谢this的答案,这让我很好的在路上。
2
Tsseract-OCR-iOS已更新以处理此问题(与libC++编译的项目(例如OpenCV)在同一项目中工作)。安装时,不要忘记这些步骤:
如果您正在使用iOS7或以上,链接的libstdC++ 6.0.9.dylib库(你的目标=>常规=>链接的框架和库=> + => libstdC++。6.0.9)
转到您的项目,单击该项目并在Build Settings选项卡中将-lstdC++添加到所有“Other Linker标志”键。 *转到您的项目设置,并确保C++标准库=>编译器默认值。 (感谢https://github.com/trein)
从项目根目录下的Template Framework Project复制并导入tessdata文件夹。它包含“tessdata”文件。你可以在这里添加更多的tessdata文件。
*为了让OpenCV编译,我必须将C++标准库设置为“libC++”。
相关问题
- 1. 在Laravel中使用TesseractOCR
- 2. Tesseract 3.02 for iOS?
- 3. 如何使用OCR(TesseractOCR)php库
- 4. 与libc-dbg和libc-prof的链接
- 5. XAMPP 1.8中的Joomla 2.53和Joomla 3.02
- 6. 链接只有libc中,并++没有的libC++用C
- 7. 如何使用在新的Facebook SDK的方法“openWithImportedAccessToken”为Android 3.02
- 8. 使用配置文件的Tesseract 3.02的角色信心
- 9. autoconf中的libc宏
- 10. 如何在OpenShift中安装TesseractOCR?
- 11. 使用g ++与libC++
- 12. PHP TesseractOCR只能在命令行工作
- 13. 如何在C#中使用tesseract 3.02训练过的数据?
- 14. 在python中使用tesseract 3.02与ctypes和cv2的C API
- 15. LLVM中的libC++和libC++ abi库有什么区别?
- 16. 适用于iOS和libC++的Google Maps SDK
- 17. python ctypes从Linux上的libc调用reboot()
- 18. 在libc中的应用程序崩溃
- 19. 如何使用更新版本的libc?
- 20. libpthread和libc中的未定义引用
- 21. libC++,Windows上的Clang和LLVM
- 22. libc中的字符编码?
- 23. Libc的静态链接
- 24. NetBSD上的Clang和-std = libC++?
- 25. 重建Android的部分(libc)
- 26. 在Windows上使用libC++?
- 27. 从JNA调用libc函数
- 28. Android,FaceDetection,LibC
- 29. 连接器命令退出码1失败使用TesseractOCR
- 30. 没有libc编译
什么是第一个链接错误? – 2013-05-02 15:11:13
感谢您的回复。 “架构armv7s的未定义符号”以及大量来自整个库的“std :: ....”。我的有效体系结构是为armv7和armv7s设置的,“Build Active Architecture Only”设置为“No”。 – 2013-05-03 20:03:16
小小更新:IOS_DEPLOY_TGFT与我在xcode项目中使用的不同。纠正它仍然会产生相同的错误,但现在它是“armv7”而不是“armv7s”。我似乎无法弄清楚这一点。 – 2013-05-05 11:00:38