gra*_*eot 16 xcode opencv ios bitcode
当我尝试使用XCode 7 + iOS SDK 9使用OpenCV 2.4 iOS编译我的XCode项目时,XCode抱怨说
ld:'opencv2.framework/opencv2(alloc.o)'不包含bitcode.您必须在启用bitcode(Xcode设置ENABLE_BITCODE)的情况下重建它,从供应商处获取更新的库,或禁用此目标的bitcode.对于架构arm64
clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
并拒绝链接.经过一些谷歌搜索,结果是因为Apple在App Store中添加了一个名为Bitcode的新功能,用于优化应用程序.虽然OpenCV iOS二进制文件尚未更新为包含Bitcode,但它无法通过链接阶段.
一些参考指出了一个禁用的临时解决方案,ENABLE_BITCODE因此可以在没有Bitcode的情况下完成链接.这将阻止为Apple Watches编译应用程序,因为Bitcode对于Watch Apps是强制性的.因此我的问题是,是否有一些(最简单的)方法来编译启用Bitcode的iOS OpenCV?(更好地使用编译框架的下载链接)
gra*_*eot 18
经过一些搜索和试验,我找到了一种从Bitcode源头编译OpenCV iOS的方法.此处还提供了编译的二进制文件:[v3.0] [v2.4].[免责声明:我不负责编译二进制文件的完整性.使用风险自负.]
编译步骤与官方文档基本相同,只有一个额外步骤.
用git下载代码:
cd ~/<my_working_directory>
git clone https://github.com/Itseez/opencv.git
为Xcode创建符号链接,让OpenCV构建脚本找到编译器,头文件等.
cd /
sudo ln -s /Applications/Xcode.app/Contents/Developer Developer
[关键步骤]更改编译脚本以为Bitcode添加额外选项:编辑~/<my_working_directory>/opencv/platform/ios/build_framework.py,并找到包含的行-DCMAKE_C_FLAGS.添加标志-fembed-bitcode.例如,在我得到的来源中,它是第55行,并且看起来像
"-DCMAKE_C_FLAGS=\"-Wno-implicit-function-declaration -fembed-bitcode\" " +
改变之后.[参考文献]
构建OpenCV框架:
cd ~/<my_working_directory>
python opencv/platforms/ios/build_framework.py ios
如果一切都很好,几分钟后你就会得到~/<my_working_directory>/ios/opencv2.framework.您可以将此框架添加到Xcode项目中.
PS问一个问题,即使你已经知道,根据Meta Stackchange上的这篇文章,我们已经知道答案了.
| 归档时间: |
|
| 查看次数: |
5235 次 |
| 最近记录: |