我试图将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。
答案 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工具包项目中必定存在一些错误,不允许将其库导入另一个项目,或者我不知道该怎么做。