如何在Xcode中链接Tiger的SQLite3库?

时间:2009-09-24 21:10:29

标签: objective-c xcode gcc sqlite

我一直在研究一个使用Tiger的SQLite3库的项目(如果我记得很好,它包含在CoreData.framework中?)并且在使用“Release”配置构建时遇到了问题。我得到链接错误告诉我通过我的项目使用的sqlite3符号是未定义的。我很确定这是因为在版本构建中没有链接所需的sqlite3库,但我似乎无法找到设置Release版本链接的原因和位置。

我的项目在Debug配置中编译没有问题。我在项目中的“Other Frameworks”下有CoreData.framework。我尝试将其置于“链接框架”下,但这不会改变构建的结果。

我试图在Build Preferences中找到Debug和Release构建配置之间的差异,但我似乎找不到任何与链接相关的不同内容,这可能会导致此问题。

我敢打赌,我应该采取一项非常小的措施来防止这种情况,但我做了我的研究,我似乎无法在任何地方找到任何东西。一些提示,但到目前为止没有任何帮助我。所以我要求你的专长。

如果您需要更多信息,请告诉我我会更新问题。

提前致谢!


更新1:我在目标中禁用了ZeroLink选项(出于某种原因,我不明白在项目的构建选项卡中有另一个选项,默认情况下已禁用)现在链接问题也发生在调试构建配置中,所以我想这是向好方向迈出的一步。现在我只需要链接库。我已经阅读了有关链接的Apple文档,但我似乎无法找到使其工作的方法。

我不知道的是:

  • Tiger的SQLite3库究竟在哪个ZeroLink链接到以前使它工作? (是/Developer/SDKs/MacOSX10.4u.sdk/usr/lib/sqlite3/libtclsqlite3.dylib吗?)
  • 如何将库添加到项目的构建中。我尝试在我的Frameworks和Target的“Link Binary With Libraries”中删除dylib,但构建显示了一些与dylib文件相关的其他错误。

更新2:我通过在项目中包含SQLite3 amalgamation(.c和.h源文件)来解决我的问题,因此它们是用它构建的。我仍然不知道如何链接dylib,并且有兴趣知道SQLite3库在Tiger / Leopard中的位置。

1 个答案:

答案 0 :(得分:0)

  1. ZeroLink已弃用,已从Xcode中删除了多个版本。不要理会它。链接器现在更快,ZeroLink也有问题。
  2. 如果你必须与Tiger的sqlite3链接,你需要做的就是将它添加到你的其他链接器标志:

    -l /开发商/软件开发工具包/ MacOSX10.4u.sdk / usr / lib中/ libsqlite3.dylib

  3. 这将强制与10.4版本的sqlite联系。