OpenCV 2.4.4和Tesseract 3.02.02不要链接在一起

Shv*_*alb 5 opencv tesseract objective-c ios

我正在使用iOS 6.1和XCode 4.6

我有一个问题,OpenCV需要用libc ++(LLVM C++ 11)编译,而Tesseract 3.02.03需要用"默认编译器"编译.

我怎样才能克服这个问题.此时我只能编译和链接如果我注释掉OpenCV代码或注释掉OCR代码.不能让他们俩一起工作.

有任何想法吗??

dan*_*elv 2

我绝不是 C++ 专家,但我遇到了同样的问题,通过一些尝试和错误以及大量的互联网搜索,我认为我设法解决了它。

据我了解,问题在于 opencv 和 tesseract 是使用不同的标准库构建的。最新的opencv是用libc++构建的,而tesseract是用stdlibc++构建的

解决方案是重建其中一个,以便它们都使用相同的标准库。我决定重新编译 tesseract 并按照此处找到的说明进行操作,该说明引用了用于构建库的构建脚本。

我修改了这个脚本(再次,通过尝试错误,不太确定这是最好的方法)以使用 clang++ 编译器 ( CXX="/usr/bin/clang++") 并使用 libc++ ( CXXFLAGS="$CFLAGS -stdlib=libc++") 并进行编译(尽管有一些警告)。您可能还需要复制一些标头,因为脚本似乎并未复制全部标头。

然后只需在你的 iOS 项目中使用这个库而不是下载的库(记住在构建设置中改回 libc++),一切都会正常编译和链接。

到目前为止,它似乎在运行时正常工作。