直到Xcode 4决赛(我使用3.latest和4 gm的时间)才发生。当我升级到Xcode 4最终版本时,我开始在尝试将ARMV7版本与我的非ARMV7库链接时(我的项目设置为默认标准ARMV6 ARMV7有效架构)时,开始遇到链接错误:

ld: warning: ignoring file ../bin/iOS static/arm/libssl.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../bin/iOS static/arm/libcrypto.a, file was built for archive which is not the architecture being linked (armv7)
Undefined symbols for architecture armv7: -- list of symbols --

ARMV6版本恰好编译,但是总体编译过程失败了77个链接错误。

我知道这是预期的行为,它不会与ARMV6 LIB联系到ARMV7。修复程序仅将我的项目设置为ARMV6。我的问题是:为什么这在Xcode的先前版本中起作用?

如果我仅设置为ARMV6,我就会开始警告:

Check dependencies

[BWARN]warning: all apps should include an armv7 architecture (current ARCHS = "armv6").

我不喜欢看到警告:-)有人遇到类似问题吗?

谢谢,

费尔南多

有帮助吗?

解决方案

我刚刚将构建活动架构仅在项目 - >构建设置 - > Architectures选项卡中的Yes中。

其他提示

在iOS SDK 4.3中,看起来链接器将只是拒绝在ARMV7二进制中使用ARMV6库 - 以前并非如此。

这就是为什么我必须更新 http://code.google.com/p/ios-static-libraries/ 项目要生成库的ARMV6和ARMV7版本。

我已经在项目中添加了一些带有一些演示类的第三方框架,但是一旦成功实施,我就删除了这些演示类,从那以后,错误开始出现错误“ LD:.........,文件是通用的,但不包含ARMV6的ARMV6切片”

在挠头整整一天之后,我第二天早上发现了这个解决方案,也许对iPhone伙伴有帮助,因为我知道痛苦

目标 - >“您的项目目标” - >获取信息 - >构建活动体系结构仅设置为“是”

而已..

也有同样的问题。但是我想的原因是不同的。我正在使用库。为模拟器构建的文件,并试图在设备上运行它。.开始知道我需要不同的.a文件用于模拟器和设备。我希望这可以帮助别人 ;)

尽管我仍然不知道为什么仅在Xcode 4的最终版本中开始发生这种情况,但我发现我的外部LIB(SSL和Crypto)在几天前的Google Code Project中是针对ARMV6和ARMV7编译的:

http://code.google.com/p/ios-static-libraries/

如果您定义了两个不同的库搜索路径:一个用于ARMV6,一个用于ARMV7,这将解决问题。

谢谢,

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top