我使用的是iOS 6.1和XCode 4.6
我有一个问题,OpenCV需要用libc++(LLVM C++11)编译,而Tesseract 3.02.03需要用"默认编译器"编译。
我怎样才能克服这个问题。在这一点上,我只能编译和链接如果我注释掉OpenCV代码或注释掉OCR代码。不能让他们两个一起工作。
有什么想法吗??
我绝不是C++专家,但我也遇到了同样的问题,经过一些尝试和错误,以及大量的互联网搜索,我想我设法解决了它。
据我所知,问题在于opencv和tesseract是用不同的标准库构建的。最新的opencv是用libc++构建的,而tesseract是用stdlibc++构建的
解决方案是重建其中一个,使它们都使用相同的标准库。我决定重新编译tesseract,并遵循此处的说明,该说明引用了用于构建库的构建脚本。
我修改了这个脚本(再次尝试了一个错误,不确定这是最好的方法),使用clang++编译器(CXX="/usr/bin/clang++"
)和libc++(CXXFLAGS="$CFLAGS -stdlib=libc++"
),它进行了编译(带有一些警告的albiet)。您可能还需要复制一些标头,因为脚本似乎并没有全部复制它们。
然后只需使用这个库,而不是iOS项目中下载的库(记住在构建设置中改回libc++),一切都会编译和链接得很好。
到目前为止,它在运行时似乎工作正常。