我最近下载了Xcode 7测试版,Xcode抱怨我的一些C库没有编译成位代码.我该如何告诉Clang生成与iOS兼容的位代码?我在stackoverflow上看到过类似的答案,但我不知道它们是否适用于为iOS生成位代码库.

编辑:

我使用的是正确的设置,-fembed位代码,但当我try 存档时,我得到了错误:

你知道哪里出问题了吗?这个库正在编译成功,但是它不让我存档.我创建了一个简单的Add函数并将其制成一个库,我得到了相同的症状,所以它不是我正在编译的库.

编辑2:

推荐答案

构建静态库时,必须添加以下内容以生成位代码:

-fembed-bitcode 

对于动态库,您需要额外链接

-fembed-bitcode

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

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

您应该知道,使用

bwilson苹果员工.


更具体地说:

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

C++相关问答推荐

“C”中函数内部的数据操作

将C中的2D char数组写入/读取到二进制文件

我可以在同一个文件中使用 time.h 中的两个 tm 结构吗?

在 c 标头中使用 c++ 标头中的枚举类

引用如何出现在可从 C 代码调用的函数的签名中?

C 编程语言中有范围运算符吗?

C 中使用数组、推送、弹出和显示的堆栈实现

&> 重定向是如何在 UNIX shell 中实现的?

使用整数存储许多布尔值是否值得?

如何解读一个单词并在 C 的 txt 文件中找到它的所有匹配项?

如何正确解决 C 中的 memset() 函数 MISRA 错误?

OpenMP 线程 ID 如何与递归一起工作?

使用 strstr 查找子字符串的所有实例会导致奇怪的字符串格式

为什么分段错误不可恢复?

为什么不鼓励静态链接 glibc?

为什么 C 和 C++ 允许表达式 (int) + 4*5?

在 C++ 中,我是否为我不吃的东西买单?

“保留用于任何用途”是什么意思?

使用模数的 C 加法

使用指向过去的 malloc 的指针是否定义明确?