libsqlite在模拟器和iOS编译中

时间:2011-10-01 20:01:07

标签: ios compilation sqlite

将应用程序编译到iOS时遇到一些问题。 我正在使用sqlite3并导入为

#import <sqlite3.h>

好吧,我只在我的Mac上找到了一个名为libsqlite3.0.dylib的文件,然后将其复制到我的项目中。 当我为iOS模拟器编译它时,它工作得很好。但是,当我尝试编译iOS设备的应用程序时,它会在我执行的每个调用中抛出一个错误(Apple Match-O链接器错误)到sqlite的函数(例如_sqlite3_open等)

如何将其编译到iOS设备?

谢谢!

4 个答案:

答案 0 :(得分:58)

不是简单地复制库,而是这样做:

    在Xcode Navigator中
  • ,点击你的目标(最上面的条目)

  • 转到Build Phases,然后转到Link Binary With Libraries

  • /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOSxx.sdk/usr/lib/

  • 的位置添加libsqlite3.dylib

答案 1 :(得分:1)

以防有人遇到与我相同的问题。如果您要对代码进行单元测试,请将lib文件也添加到测试目标中。

答案 2 :(得分:0)

您是否尝试导入sqlite3库,如:

#import "sqlite3.h"

而不是:

#import <sqlite3.h>

答案 3 :(得分:-1)

我发现在IOS应用程序中使用SQLite的最佳方法是构建自己的SQLit库副本并将其包含在项目中。 libsqlite3.0.dylib是一个非常古老的SQLite副本。

您可以轻松下载SQLite Amalgamation源代码并为IOS构建它。这将为您提供最新的SQLite源代码,其中包含所有最新的错误修复和改进。

如果您可以打开Xcode并创建一个新的静态库项目,那么您将占据75%的目标。

获得静态库项目后,请包含从SQLite Amalgamation下载的SQLite源,并设置一些预处理器选项,然后关闭并运行最新代码。

有关完整的详细信息和示例源代码,您可以访问我的博客conedogers