我最近下载了 Xcode 7 beta,Xcode 抱怨我的一些 C 库没有编译成 BitCode。我该如何告诉 Clang 生成与 iOS 兼容的 BitCode?我在 stackoverflow 上看到过类似的答案,但我不知道它们是否适用于为 iOS 生成 BitCode 库。
Edit:
我使用了正确的设置 -fembed-bitcode,但是当我尝试存档时,出现错误:
ld:警告:忽略文件 XXXX/XXXX,该文件是为存档而构建的,该存档不是正在链接的体系结构(arm64)。
当我使用 -fembed-bitcode-marker 时,我可以存档,但出现错误:
无法生成完整的位码包,因为 XX/XX 仅使用位码标记构建。该库必须从启用位码的 Xcode 存档构建中生成。
关于出了什么问题有什么想法吗?该库已成功编译,但不允许我存档。我创建了一个简单的添加函数并将其放入库中,并且我得到了相同的症状,因此它不是我正在编译的库。
编辑2:
您必须使用位码构建arm64 和armv7 版本并将它们一起lipo。使用位码并不能消除归档时对胖库的需要。来源 :Link
构建静态库时,必须添加以下内容以生成位码:
-fembed-bitcode
对于动态库,您需要另外链接
-fembed-bitcode
注意:该命令仅适用于 Xcode7+
关于使用的公认答案-fembed-bitcode-marker
您应该知道,使用以下命令进行正常构建
-fembed-bitcode-marker 选项将生成最小尺寸的嵌入位码部分,没有任何实际内容。这是作为一种方式完成的
在不减慢速度的情况下测试构建的与位码相关的方面
构建过程。当您执行此操作时,会包含实际的位码内容
存档版本。
比尔森苹果员工。https://forums.developer.apple.com/thread/3971#12225
更具体:
-
-fembed-bitcode-marker
只是标记归档构建后位码在二进制文件中的位置。
-
-fembed-bitcode
实际上完成了完整的位码生成和嵌入,因此这就是构建静态库所需的。
- Xcode 本身是用
-fembed-bitcode-marker
用于常规构建(例如部署到模拟器)
- Xcode 只能构建
-fembed-bitcode
用于存档版本/生产版本(因为只有 Apple 需要)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)