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++标准库时,我得到了很多链接器错误,而项目构建失败了。当标准库设置为编译器默认值时,新库仍然工作(就像定期构建时一样)。
我遗漏了什么?
发布于 2013-05-05 12:15:17
好的,所以我的问题是,在我的项目中添加和删除了几次对库的引用之后,我的Library搜索路径非常混乱。另外,我没有将新的"include“文件夹(在构建tesseract时创建)添加到用户头搜索路径中。
因此,简单地回顾一下,为了使用libc++构建tesseract-ocr,它可以与较新的OpenCV版本一起工作:
就这样。此时,您将有一个能够同时使用新OpenCV版本和tesseract 3.02的项目。如果这是一个新项目,请不要忘记相应地编辑前缀文件,以便在OpenCV和Tesseract中包含__cplusplus,并使用它们将任何.m文件重命名为.mm
多亏了这的回答,这才让我一路顺风。
发布于 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才能编译。
https://stackoverflow.com/questions/16323316
复制相似问题