【问题标题】:XCode error after linking SQLite3链接 SQLite3 后的 XCode 错误
【发布时间】:2011-07-12 17:09:26
【问题描述】:

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

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

我添加sqlite3的方式如下:右键frameworks文件夹,选择“Add files to...”,搜索libsqlite3.dylib。其中有两个和libsqlite3.0.dylib 中的两个。我知道“3.0”不适合模拟器,所以我选择了“3”之一。当我尝试选择另一个时,它只是说我已经添加了它,所以我假设它们是相同的。

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

【问题讨论】:

    标签: iphone xcode sqlite


    【解决方案1】:

    您是否检查过项目设置。架构专栏。

    已编辑

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

    • 导航到构建设置选项卡并查看架构组

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

    • 如果“有效架构”仅设置为 armv6 和 armv7,请删除两者。重新启动 Xcode。我不知道为什么,但你们中的一些人报告说它有帮助。将“有效架构”设置为 $(ARCHS_STANDARD_32_BIT)。有效架构将再次显示 armv6 和 armv7,但这次它可能编译得很好。不过很奇怪。

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

    注意事项:

    • 更改代码以减少如下警告的数量: 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 做好了准备。

    【讨论】:

    • 我对 xcode 4 界面并不完全熟悉,但是我的项目设置没有架构选项卡、列或任何东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 2010-11-25
    • 2014-04-15
    • 1970-01-01
    • 2017-08-22
    • 2012-09-28
    • 1970-01-01
    相关资源
    最近更新 更多