链接SQLite3后出现XCode错误

时间:2011-07-12 17:09:27

标签: iphone xcode sqlite

libsqlite3.dylib添加到我的xcode frameworks文件夹后,出现以下错误。

ignoring file /Users/AlexStein/Desktop/iPhone Applications/Persistence copy/libsqlite3.dylib, missing required architecture i386 in file

我添加sqlite3的方式如下:右键单击frameworks文件夹,选择“将文件添加到...”并搜索libsqlite3.dyliblibsqlite3.0.dylib中有两个和两个{{1}}。我知道“3.0”不适合模拟器,所以我选择了其中一个“3”。当我尝试选择另一个时,它只是说我已经添加了它,所以我认为它们是相同的。

我不确定为什么我收到错误,因为我很确定我的所有代码都是正确的。这与xCode有关。我很感激任何帮助!

1 个答案:

答案 0 :(得分:0)

你检查过项目设置吗?建筑专栏。

<强> EDITED

Apple的Xcode 4与早期版本不同。我们必须学习新的用户界面,并且必须解决一些先天缺陷。尝试以下步骤:

  • 导航到“构建设置”选项卡,然后查看“架构”组

  • 查看值,例如架构:标准(armv6 armv7),基础SDK:最新iOS(iOS 4.3),仅构建活动架构:否,支持的平台:iphonesimulator,iphoneos和有效架构:armv6 armv7 I386。

  • 如果“有效架构”仅设置为armv6和armv7,则删除两者。重启Xcode。我不知道为什么,但有些人报告说它有所帮助。将“Valid Architectures”设置为$(ARCHS_STANDARD_32_BIT)。有效的架构将再次显示armv6和armv7,但这次它可以编译得很好。虽然很奇怪。

  • 除标准armv6和armv7外,手动将i386添加到“Valid Architectures”。请注意,由于模拟器在您的Intel iMac(或MacBook Pro)上运行,因此i386是一种有效的架构。

注意:

  • 更改代码以减少此类警告的数量: 1 2 3 4

取代: if(self = [super init]){ 有: if((self = [super init])){

  • armv6通知:Apple发起了iOS 4.3的主要硬件截止。 iOS 4.3删除了对任何基于armv6的小工具的支持。旧的iPod touch / iPhone(1G,2G,3G)设备都在arm v6 CPU上运行。 Armv6编译器不能与armv7或更高版本一起使用,但使用Xcode 4,您可以为运行iOS 4.2或更早版本的旧设备构建应用程序。在您的代码中查找iOS和硬件版本以使用正确的框架或其他对象,否则您将在运行时获得异常。似乎Apple为armv8设备和iOS 5做好了准备。