缺少必需的架构x86_64 in ... libMumbleKit.a(3个切片)

时间:2015-11-02 11:32:44

标签: ios xcode x86-64

我试图将MumbleKit作为一个库包含在内,而不是每次都按照本论坛成员的建议编译它。然而,当我尝试在模拟器上编译时,我得到:

  

在... libMumbleKit.a(3个切片)中缺少必需的体系结构x86_64

我想我在生成库之前已经将所有必要的版本添加到MumbleKit:

  

arm64 armv7 armv7s armv7k arm7s x86_64 i386

尽管如此,当我执行时:

  

lipo -info libMumbleKit.a

我明白了:

  

胖文件中的体系结构:libMumbleKit.a是:armv7 armv7s arm64

以及将Build Active Architecture配置为NO。 我使用Generic iOS设备和iOS 9物理设备为MumbleKit生成了库。

当我以同样的方式提取Mumble库后尝试使用Generic iOS Device选项进行存档时,我得到错误:

  

ld:无法生成bitcode包,因为   “/用户/ fbartolom /文档/可可   applications / inArrivoHD / MumbleKit / libMumbleKit.a(CryptState.o)'was   没有完整的bitcode建造。 bitcode的所有目标文件和库   必须从Xcode Archive或Install build for architecture生成   ARMv7的

在以相应的方式生成库之后使用我的物理设备时也是如此:

  

ld:无法生成bitcode包,因为   “/用户/ fbartolom /文档/可可   applications / inArrivoHD / MumbleKit / libMumbleKit.a(CryptState.o)'was   没有完整的bitcode建造。 bitcode的所有目标文件和库   必须从Xcode Archive或Install build for architecture生成   arm64

最后,在我的iOS 9 iPhone 6S上的安装很好,只有警告中的相同内容:

  

ld:无法生成bitcode包,因为   “/用户/ fbartolom /文档/可可   applications / inArrivoHD / MumbleKit / libMumbleKit.a(CryptState.o)'was   没有完整的bitcode建造。 bitcode的所有目标文件和库   必须从Xcode Archive或Install build for architecture生成   arm64

如果库中有c ++文件,则为CryptState.cpp。

3 个答案:

答案 0 :(得分:0)

使用 lipo 工具检查它的架构。打开终端,导航到您的图书馆所在的文件夹并执行:

lipo -info yourlib.a

如果你没有x86_64,那么你应该找到/编译它的lib。

x86_64是Simulator的架构,不适用于通用iOS设备。

答案 1 :(得分:0)

我在:

处应用了这个建议

Xcode 7 'CrashReporter does not contain bitcode' linker error

将选项 -fembed-bitcode 添加到其他链接器标志字段。现在问题已转移到c文件:band.c,尽管我当然为c和c ++文件添加了这个选项。

  

ld:无法生成bitcode包,因为   “/用户/ fbartolom /文档/可可   applications / inArrivoHD / MumbleKit / libMumbleKit.a(bands.o)'建成   没有完整的bitcode。 bitcode的所有目标文件和库都必须   从Xcode Archive生成或安装体系结构   arm64

可能还缺少什么?

答案 2 :(得分:0)

我放弃了这次尝试。原始的mumble工具包项目中必定存在一些错误,不允许将其库导入另一个项目,或者我不知道该怎么做。