XCode 6.1 在外部库的文件中缺少必需的架构 X86_64

18 浏览
0 Comments

XCode 6.1 在外部库的文件中缺少必需的架构 X86_64

我在尝试使用外部库时遇到了一个问题:当我编译项目时,会抛出以下异常。

ld: 警告: 忽略文件 /Users/renaudcousin/Documents/XCode/WORK/StimShopPOC/StimShopPOC/libStimshop_SDK.a,文件 /Users/renaudcousin/Documents/XCode/WORK/StimShopPOC/StimShopPOC/libStimshop_SDK.a 中缺少所需的 x86_64 架构(3个片段)

对于架构 x86_64,未定义符号:

"_OBJC_CLASS_$_StimshopSDK",引用自:

ViewController.o 中的 objc-class-ref

ld: 对于架构 x86_64 找不到符号

clang: 错误: 链接器命令失败,退出码 1(使用 -v 选项可查看调用)

我尝试了很多在stackoverflow上找到的解决方案(但是针对的是XCode 5.1,并且解释得不够清楚),但没有任何改变...

我还在这个主题XCode 6.1 Missing required architecture X86_64 in file中找到了与我的问题完全相符的解决方案,并且当我用lipo -info命令查看我的库的架构时,似乎缺少i386x86_64。我应该如何将它们添加到我的库架构中以便能够编译?

0
0 Comments

如果一个库没有X86_64架构,你可以选择连接的设备而不是模拟器来构建它。

基本上,你仍然可以构建和开发,但不能使用模拟器。

原因:

库没有X86_64架构。

解决方法:

选择连接的设备而不是模拟器来构建库。

0
0 Comments

XCode 6.1 缺少所需的架构 x86_64 问题的原因是 .a 库文件不包含 x86_64 架构。可以通过运行 lipo -info /path/to/your/lib.a 命令来验证。如果没有库文件的源代码,就需要修改项目。在构建设置中,将 "valid architectures" 改为 "armv7" 和 "i386",或者将 "Architectures" 改为 "armv7"。然而,这样做会导致项目无法编译为 arm64 架构,在2015年2月之后上传到App Store时将无法通过苹果的要求。

如果库文件不包含 x86_64 架构,那么很可能也不包含 arm64 架构。因此,应避免使用旧的库文件。

我知道,我已经测试了 lipo -info 命令,结果缺少 i386x86_64 架构。但是我不能避免使用这个库文件,这是我的经理要求我创建一个原型应用程序!

我也尝试了将 "valid architecture" 设置为 "armv7" 和 "i386",或者将 "architecture" 设置为 "armv7",但这只会将我的问题改变为我的库文件不包含 i386 架构。

如果 .a 文件不包含 i386 和 x86_64 架构,就无法链接到iPhone模拟器使用的应用程序中。在这种情况下,无论你做什么,当你尝试为模拟器编译时都会遇到编译器错误。唯一能做的就是要求获得一个 x86 版本,或者在真实设备上调试应用程序。

需要注意的是,iPhone 模拟器使用的是 x86 架构,而不是 arm 架构。

是的,谢谢。这就是我所看到的。但是我现在正在尝试直接在设备上编译,但总是遇到来自架构的一些错误...我正在等待库的开发者发布一个新版本。谢谢大家的回复 🙂

0
0 Comments

在XCode 6.1中出现了一个问题,错误提示为"Missing required architecture X86_64 in file for extern library"。该问题的出现原因是项目的架构设置不正确,解决方法如下:

1. 点击项目,选择"build setting"选项。

2. 找到"architecture"选项,将其更改为"armv7",并删除其他选项,如"armv6"等。

3. 保存更改后重新编译项目。

通过以上步骤,问题将会被解决。

0