Xcode 4 Final -“ ARMV6 ARMV7”问题与ARMV6 LIB
-
24-10-2019 - |
题
直到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,这将解决问题。
谢谢,