我一直在研究一个使用Tiger的SQLite3库的项目(如果我记得很好,它包含在CoreData.framework中?)并且在使用“Release”配置构建时遇到了问题。我得到链接错误告诉我通过我的项目使用的sqlite3符号是未定义的。我很确定这是因为在版本构建中没有链接所需的sqlite3库,但我似乎无法找到设置Release版本链接的原因和位置。
我的项目在Debug配置中编译没有问题。我在项目中的“Other Frameworks”下有CoreData.framework。我尝试将其置于“链接框架”下,但这不会改变构建的结果。
我试图在Build Preferences中找到Debug和Release构建配置之间的差异,但我似乎找不到任何与链接相关的不同内容,这可能会导致此问题。
我敢打赌,我应该采取一项非常小的措施来防止这种情况,但我做了我的研究,我似乎无法在任何地方找到任何东西。一些提示,但到目前为止没有任何帮助我。所以我要求你的专长。
如果您需要更多信息,请告诉我我会更新问题。
提前致谢!
更新1:我在目标中禁用了ZeroLink选项(出于某种原因,我不明白在项目的构建选项卡中有另一个选项,默认情况下已禁用)现在链接问题也发生在调试构建配置中,所以我想这是向好方向迈出的一步。现在我只需要链接库。我已经阅读了有关链接的Apple文档,但我似乎无法找到使其工作的方法。
我不知道的是:
更新2:我通过在项目中包含SQLite3 amalgamation(.c和.h源文件)来解决我的问题,因此它们是用它构建的。我仍然不知道如何链接dylib,并且有兴趣知道SQLite3库在Tiger / Leopard中的位置。
答案 0 :(得分:0)
如果你必须与Tiger的sqlite3链接,你需要做的就是将它添加到你的其他链接器标志:
-l /开发商/软件开发工具包/ MacOSX10.4u.sdk / usr / lib中/ libsqlite3.dylib
这将强制与10.4版本的sqlite联系。