c++ - 带有适用于 iOS 的 libstdc++ 的 OpenCV 2.4.3+?

标签 c++ ios xcode opencv c++11

我正在尝试将最新版本的 OpenCV 包含到现有的 iOS 项目中,但出现链接器错误,因为我的 XCode 项目设置为使用 libstdc++ 而不是 libc++/C++ 11 支持。

我见过其他几个人通过启用 libc++ 修复了他们的错误。示例:

但是,我需要使用 libstdc++,因为我有其他第 3 方库,这些库已经使用较旧的 stdlib 编译(无法更改)。有没有办法在没有 -stdlib=libc++ 的情况下编译 OpenCV 2.4.3+?是否有特殊标志传递给 CMake?还是 OpenCV 源代码的 ios 文件夹中的 build_framework.py 脚本?

或者,有人有可用的二进制版本吗?似乎所有都可以从 OpenCV 下载,假设是 libc++/C++11。

最佳答案

在 openCV 的源代码中找到这个文件:

ios/cmake/Modules/Platform/iOS.cmake

改变这一行:

set (CMAKE_CXX_FLAGS "-stdlib=libc++ -headerpad_max_install_names -fvisibility=hidden -fvisibility-inlines-hidden")

到:

set (CMAKE_CXX_FLAGS "-stdlib=libstdc++ -headerpad_max_install_names -fvisibility=hidden -fvisibility-inlines-hidden")

使用python脚本编译

ios/build_framework.py

那你就可以开始了

我刚刚在 2.4.3 源代码上尝试过这个,在现有项目的结果框架中交换,将项目的 C++ 标准库更改为 libstdc++,它运行良好。

关于c++ - 带有适用于 iOS 的 libstdc++ 的 OpenCV 2.4.3+?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15855894/

相关文章:

c++ - 返回变量为 void (*)(void)

iphone - UITableView样式中的自定义selectedSelectedBackgroundView出站分组

ios - 从 NavigationController 后退按钮返回多个 ViewController

ios - uitextview 字体不随 fontWIthName 改变

ios - 当我为我的 iOS 应用程序运行我的代码时,它停止了,就好像我设置了一个断点(没有错误)并且不会继续运行

c++ - 如何判断c++ vector中的值类型(int或double)?

c++ - 用于存储数字窗口并返回唯一数字的标准容器/库?

iOS 10 保存到相机胶卷错误/崩溃

ios - Xcode 4.5 Enterprise 签名问题(适用于 Xcode 4.3.3)

c++ - 拆分并从字符串转换为字符数组