OpenCV 2.4.3+ with libstdc++ for iOS?
OpenCV 2.4.3+ with libstdc++ for iOS?
我试图将最新版本的OpenCV包含到现有的iOS项目中,并且我有链接器错误,因为我的XCode项目设置为使用libstdc++而不是libc++/c++ 11支持。
我看到其他几个人通过启用libc++修复了他们的错误。例子:
- Xcode升级到4.5.2和OpenCV升级到2.4.3后的链接错误
- 如何解决iOS链接错误与OpenCV
然而,我需要使用libstdc++,因为我有其他第三方库已经用旧的stdlib编译(不能更改)。有没有一种方法来编译OpenCV 2.4.3+没有-stdlib=libc++ ?是否有特殊的标志传递给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++,它运行得很好。
我也在做一个使用OpenCV和第三方库的项目,需要libstdc++。
因为我自己也遇到了这个问题,我想分享一下对我有用的方法。
我能够通过添加"libc++"来获得OpenCV工作。为我的项目干杯。
构建阶段-> "链接二进制文件与库" -> "+" -> libc++.dylib
作为参考,我使用OpenCV 2.4.9 (OpenCV -2.4.9)从opencv.org。我根据OpenCV文档中的说明使用ios平台build_framework.py编译了它。
相关文章:
- "error: no matching function for call to"构造函数错误
- 表示"accepting anything for this template argument" C++概念的通配符
- 如何在C++中从两个单独的for循环中添加两个数组
- 在Linux for Windows上编译C++代码时出错
- 调用专用模板时出错"no matching function for call to [...]"
- 为什么我的for循环不能正确获取argv
- 为什么我不能在 FOR LOOP 中使用 i/10,C++?
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 使用ios:ate写入到流会覆盖现有文件
- 在基于范围的for循环中使用结构化绑定声明
- 使用ExtAudioFileWrite for iOS将音频样本的缓冲区写入aac文件
- 如何在 Swift for iOS 中使用C++代码
- Qt for iOS:需要代码签名
- Compiling Google Mock for iOS
- 通过UIInterfaceOrientationMask for Objective-C / iOS了解C++枚举
- 如何在OS X for ios上交叉编译本机makefile项目
- OpenCV 2.4.3+ with libstdc++ for iOS?
- OpenCV for iOS构建错误
- Using JNI FOR IOS and Android
- C++ Objective-C for iOS 中的代码