【问题标题】:xcode sqlite3 libsqlite.dylibxcode sqlite3 libsqlite.dylib
【发布时间】:2011-07-20 13:01:58
【问题描述】:

我在项目中有一个错误,但我不知道是问题所在。这是我编译后的错误。

ld 警告:

在 /install/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/lib/libsqlite3.dylib, 文件不是必需的架构

ld 警告:

在 /install/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/lib/libsqlite3.0.dylib, 文件不是必需的架构未定义 符号:“_sqlite3_open”,引用自:-[LiteSqlViewController openDB] 在 LiteSqlViewController.o "_sqlite3_close" 中,引用自: -LiteSqlViewController.o中的[LiteSqlViewController openDB]

ld:

符号未找到 collect2: ld 返回 1 个退出状态 _sqlite3_open",引用自:-[LiteSqlViewController openDB] in LiteSqlViewController.o "_sqlite3_close",引用 from:-[LiteSqlViewController openDB] in LiteSqlViewController.o

ld:

symbol(s) not found collect2: ld 返回 1 exit status 构建失败 (2 个错误)

我使用 OSX 10.5.8 xcode 3.1.2 iphone 模拟器 2.2.1 架构 PPC

命令结果:

文件 /usr/lib/libsqlite3.dylib : /usr/lib/libsqlite3.dylib: Mach-O 具有 4 个架构 /usr/lib/libsqlite3.dylib 的通用二进制文件(用于 架构 ppc7400):Mach-O 动态链接共享库 ppc /usr/lib/libsqlite3.dylib(用于架构 ppc64):Mach-O 64 位 动态链接的共享库 ppc64 /usr/lib/libsqlite3.dylib(对于 架构 i386):Mach-O 动态链接共享库 i386 /usr/lib/libsqlite3.dylib(用于架构 x86_64):Mach-O 64 位 动态链接共享库 x86_64。

【问题讨论】:

    标签: iphone objective-c cocoa xcode sqlite


    【解决方案1】:

    在 PPC Mac 上使用 iPhone 模拟器似乎不太简单。发出命令file 并使用您得到的第一个错误中的路径(就在第一个ld 警告之后:)。查看this related question,也许这些步骤会有所帮助。


    旧答案:

    您是否在项目中链接了libsqlite3.dylib

    在 Xcode 4 中,这可以像屏幕截图所示那样完成:按加号并添加 libsqlite3.dylib。之后,您可以将库拖到 Linked Frameworks 文件夹中。 (屏幕截图显示的是 Mac OS X 应用程序,iOS 应用程序也是如此。)

    【讨论】:

    • 是的,我添加了这个框架 libsqlite3.dylib 和 #import "sqlite3.h" 我只是在我的主题标题中犯了一个错误。我使用 Osx 10.5.8、xcode 3.1.2 和 iphone 模拟器 2.2.1。非常感谢您的回答
    • 您的错误表明项目中包含了错误的 libsqlite 架构 (!)。如果您删除它并重新添加它,这是否解决了问题?当您收到错误时,构建设置是什么,您正在构建哪个架构?将此信息添加到问题中,也许有人可以提供帮助。
    • 帕斯卡非常感谢您的帮助。我确实像你说的,但它没有运行。我的 iphone 模拟器是 2.2.1 架构 ppc。
    • 哦,PPC?您在 PowerPC Mac 上运行吗?嗯,实际上,我的库也可以作为 PPC 库使用。你从这个命令中得到了什么:file /usr/lib/libsqlite3.dylib?它在某处说ppc7400 吗?
    • 嗨帕斯卡。这是我的mac版本。我还要说我是这个平台的新手。
    【解决方案2】:

    Xcode 4 不构建 PPC 架构(也不适用于 10.6 之前的任何操作系统)。

    您需要确保您的程序和 libsqlite3.dylib 库是为相同的架构构建的。我怀疑这个库是为 x86 构建的。

    正如其他人所说,使用“文件”命令来确定构建文件的架构。

    【讨论】:

    • 我用的是Osx10.5.8 xcode 3.1.2 iphone模拟器2.2.1 Architecture PPC,非常感谢你的回答,我更新主题了。
    猜你喜欢
    • 1970-01-01
    • 2011-07-20
    • 2011-06-06
    • 2011-10-20
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多