首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS库到BitCode

iOS库到BitCode
EN

Stack Overflow用户
提问于 2015-07-05 18:04:58
回答 6查看 46.5K关注 0票数 57

我最近下载了Xcode 7测试版,Xcode抱怨我的一些C库没有编译到BitCode中。我将如何告诉Clang生产与iOS兼容的iOS?我在堆栈溢出上看到了类似的答案,但我不知道它们是否适用于为iOS生成BitCode库。

编辑:

我使用的是正确的设置-fembed,但是当我尝试归档时,我会得到错误: ld:警告:忽略文件XXXX/XXXX,文件是为存档构建的,而不是链接的体系结构(arm64)。当我使用-标记时,我可以存档,但我得到了一个错误:无法生成完整的bitcode包,因为XX/XX只使用bitcode标记构建。库必须从启用bitcode的Xcode存档生成中生成。

对出了什么问题有什么想法吗?这个库正在成功编译,但它不让我存档。我创建了一个简单的add函数并将其放入库中,并且我得到了相同的症状,所以它不是我正在编译的库。

编辑2:您必须使用bitcode同时构建arm64和armv7版本,并将它们放在一起。在归档时,使用bitcode并不能消除对胖库的需求。来源:链接

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-07-10 17:20:44

在构建静态库时,必须为生成bitcode添加以下内容:

代码语言:javascript
复制
-fembed-bitcode 

对于动态库,需要附加链接。

代码语言:javascript
复制
-fembed-bitcode

注意:此命令仅适用于Xcode7+

关于使用-fembed-bitcode-marker的公认答案

您应该知道,使用-标记选项进行的正常构建将生成最小大小的嵌入式bitcode部分,而不需要任何实际内容。这样做是为了测试构建过程中与bitcode相关的方面,而不降低构建过程的速度。当您进行Archive构建时,将包含实际的bitcode内容。

鲍尔森苹果的员工。https://forums.developer.apple.com/thread/3971#12225

更具体而言:

  • -fembed-bitcode-marker只是简单地标记在归档构建后的二进制代码中的位置。
  • -fembed-bitcode实际上完成了完整的bitcode生成和嵌入,所以这就是构建静态库所需要的。
  • Xcode本身为常规构建使用-fembed-bitcode-marker构建(比如部署到模拟器)
  • Xcode只为存档构建/生产构建使用-fembed-bitcode构建(因为这只是苹果所需要的)。
票数 77
EN

Stack Overflow用户

发布于 2015-09-15 09:52:41

转到构建设置。搜索“自定义编译器标志”。

-fembed-bitcode添加到其他C标志中。这将确保库在编译时具有bitcode兼容性。我为iOS 64位和32位做了这个,然后把它们变成一个。就像一种魅力。

由于你们有查询,下面是设置的屏幕截图:项目目标和SDK目标的设置是相同的。

bitcode库将不能使用Xcode 6。

票数 56
EN

Stack Overflow用户

发布于 2016-04-27 03:53:26

如果在将-fembed-bitcode添加到其他C标志后仍有问题,请在"Build“下搜索"Enable”,并将其设置为No。这将使您能够正确地存档。

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31233395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档