【问题标题】:YASVE - SQLite Version ErrorYASVE - SQLite 版本错误
【发布时间】:2015-02-26 00:02:24
【问题描述】:

这可能是一个菜鸟问题,但是......

我终于冒险将 xcode 更新为 6(从 3.2.6,IB 插件保留),但将开发人员目标保持在 10.6,因此我可以在 Yosemite 中运行时更好地解决所有弃用问题(10.6、10.8、10.10) 10.10.1 服务器。

在解决了 10.6 弃用 (whoa) 之后,我得到了一个干净的构建,但它在启动时失败了:

dyld:库未加载:/usr/lib/libsqlite3.dylib 引用自:/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork 原因:库版本不兼容:CFNetwork需要9.0.0或更高版本,但libsqlite3.dylib提供1.0.0版本 (lldb)

这个应用程序使用 FMDatabase 和 sqlite 作为子项目,并且在更新之前在 10.7.5 上运行良好。我确实尝试构建/安装 sqlite-autoconf-3080704.tar.gz (一直在使用 3080704),但是安装在 /usr/local/lib 并且 xcode 没有选择它或者我的 LD_LIBRARY_PATH 没有影响搜索。

所以我想我错过了什么。其他类似的帖子似乎与第 3 方包相关(Ruby、FireFox 等),但我怀疑我的问题是第 0 天设置。

【问题讨论】:

  • 顺便说一句,我使用子项目是由于我扩展了 FM 并使用了一些无法解析的符号,但我确实通过标志 -lsqlite3 链接。我怀疑这是 CFNetwork 的问题?

标签: xcode macos sqlite


【解决方案1】:

好吧,似乎我将 sqlite3 作为子项目嵌入的方法不再可行,因为从 xcode 3.2 迁移到了 6.3,CFNetwork 框架也使用了 sqlite3。我的项目版本对此产生了影响,子项目版本默认为 1。解决方案是删除此子项目并链接到系统版本: -lsqlite3 添加到链接器标志。

它确实提出了一个更大的问题,即您是否仍然可以通过更改子项目的兼容和版本构建设置来做到这一点,但是您可能会遇到其他问题(缺少全局 sqlite3_intarray_bind)与位本身,所以我将其留到另一天。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 2014-03-26
    • 2019-09-30
    • 2021-07-25
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多