我最近下载了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并不能消除对胖库的需求。来源:链接
发布于 2015-07-10 17:20:44
在构建静态库时,必须为生成bitcode添加以下内容:
-fembed-bitcode 对于动态库,需要附加链接。
-fembed-bitcode注意:此命令仅适用于Xcode7+
关于使用-fembed-bitcode-marker的公认答案
您应该知道,使用-标记选项进行的正常构建将生成最小大小的嵌入式bitcode部分,而不需要任何实际内容。这样做是为了测试构建过程中与bitcode相关的方面,而不降低构建过程的速度。当您进行Archive构建时,将包含实际的bitcode内容。
鲍尔森苹果的员工。https://forums.developer.apple.com/thread/3971#12225
更具体而言:
-fembed-bitcode-marker只是简单地标记在归档构建后的二进制代码中的位置。-fembed-bitcode实际上完成了完整的bitcode生成和嵌入,所以这就是构建静态库所需要的。-fembed-bitcode-marker构建(比如部署到模拟器)-fembed-bitcode构建(因为这只是苹果所需要的)。发布于 2015-09-15 09:52:41
转到构建设置。搜索“自定义编译器标志”。
将-fembed-bitcode添加到其他C标志中。这将确保库在编译时具有bitcode兼容性。我为iOS 64位和32位做了这个,然后把它们变成一个。就像一种魅力。
由于你们有查询,下面是设置的屏幕截图:项目目标和SDK目标的设置是相同的。

bitcode库将不能使用Xcode 6。
发布于 2016-04-27 03:53:26
如果在将-fembed-bitcode添加到其他C标志后仍有问题,请在"Build“下搜索"Enable”,并将其设置为No。这将使您能够正确地存档。
https://stackoverflow.com/questions/31233395
复制相似问题