Mac App需要更新版本的sqlite,但使用旧版本

塔利亚

尝试在Mac(Mavericks)上运行/调试应用程序,该应用程序必须使用sqlite 3.8.6。

我在项目中有.h和.c文件。我将dylib添加为构建资源

LIBS += sqlite3/libsqlite3.0.dylib

但是我还必须将dylib放在某个地方,并在运行时告诉程序使用此版本。

系统上已安装了SQLite版本3.7.13(位于中/usr/lib)。似乎优先使用。如果我拥有管理员权限(我没有),则可以将其移至其他位置...但是用户系统可能会将其放在默认位置,因此这将毫无用处。

我试图将MY sqlite3放置在优先使用的地方-像inmyapp.app/Contents/Frameworksmyapp.app/Contents/MacOs...,也试图改变依赖关系,但install_name_tool没有成功。

使用来检查依赖项会otool -L显示对sqlite3.0.dylibin的依赖关系/usr/local/lib(其中不包含任何sqlite3...),即使在运行后install_name_tool仍显示相同。也许我做错了...

install_name_tool -id @executable_path/Frameworks/libsqlite3.0.dylib myapp.app/Contents/Frameworks/libsqlite3.0.dylib
install_name_tool -change myapp.app/Contents/Frameworks/libsqlite3.0.dylib @executable_path/Frameworks/libsqlite3.0.dylib  myapp.app/Contents/Frameworks/mylib.dylib
install_name_tool -change myapp.app/Contents/Frameworks/libsqlite3.0.dylib @executable_path/Frameworks/libsqlite3.0.dylib  myapp.app/Contents/MacOs/myapp

我收到一个SQL错误,该错误是由sqlite3的错误(较旧)版本引起的,该版本不支持某些必需的功能。

如何强制应用查看我添加的版本?

更新:我添加了c文件,并删除了dylib作为依赖项...

我得到了错误 no such module: fts4

我在.c文件(来自http://www.sqlite.org/fts3.html)中添加了以下内容-如以下注释中所建议

#define SQLITE_ENABLE_FTS4
#define SQLITE_ENABLE_FTS4_PARENTHESIS

在Windows和Linux中添加相同的内容,效果是库+ sqlite3的两倍。而且,数据库查询的运行速度明显变慢(我实际上以为没有执行查询)。

如果这是我在Mac上唯一的选择,则我将不得不使用它……我要么卡在非常慢的构建,很大的库和非常慢的查询中,要么……仍然必须有一个使用的选项在sqlite3.dylib没有建设成我创建的lib。

用户名

您可以仅将原始(Amalgamation)文件sqlite3.csqlite3.h(查找版本3.8.6)添加到Xcode项目中。基本上就是这样。

如果需要更改/添加一些编译选项,可以在sqlite3.c的顶部进行。

以下是激活FTS3 / FTS4的示例:

#define SQLITE_ENABLE_FTS4

所有的编译选项都在这里:http : //www.sqlite.org/compile.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Maven更新版本目标在Jenkins中构建旧版本

来自分类Dev

如何在较新版本的Ubuntu中使用旧版本的Unity?

来自分类Dev

如何在较新版本的Ubuntu中使用旧版本的Unity?

来自分类Dev

使用firefox的更新版本

来自分类Dev

如果我有较新版本的g ++,该如何强制使用旧版本的g ++?

来自分类Dev

Android Studio调试器逐步使用旧版本的代码,而不是最新版本

来自分类Dev

无法在Mac上安装旧版本的Intel Fortran

来自分类Dev

如何在MAC上安装旧版本(1.6.18)svn

来自分类Dev

Android SQLite。在更新版本时添加列

来自分类Dev

获取更新版本的 QGIS

来自分类Dev

在Mac上的哪里可以找到使用GCC编译器的最新版本?

来自分类Dev

安装了sqlite3 v3.8,但默认情况下mac终端仍运行旧版本3.6

来自分类Dev

安装了sqlite3 v3.8,但默认情况下mac终端仍运行旧版本3.6

来自分类Dev

如何删除旧版本的Java并安装新版本

来自分类Dev

如何在旧版本之上安装新版本?

来自分类Dev

使用旧版本的jHipster

来自分类Dev

允许使用旧版本的python

来自分类Dev

活动使用旧版本的 Firefox

来自分类Dev

如何排除旧版本的Maven依赖关系并使用它的新版本?

来自分类Dev

使用最新版本的Perl编写旧版本的脚本

来自分类Dev

Gradle依赖项:使用的是最新版本还是最旧版本?

来自分类Dev

如何使用Selenium(Java)同时支持旧版本和新版本的Firefox

来自分类Dev

如果我有较新版本,如何强制使用较旧版本的 g++?

来自分类Dev

“ Visual Studio需要更新版本的Windows才能显示此内容。”

来自分类Dev

如何使用`venv`更新Python虚拟环境以使用更新版本的Python?

来自分类Dev

在NuGet中确定Visual Studio更新版本

来自分类Dev

是否有更新版本的snort?

来自分类Dev

更新版本化的.NET程序集引用

来自分类Dev

文件的更新版本不适用

Related 相关文章

  1. 1

    Maven更新版本目标在Jenkins中构建旧版本

  2. 2

    如何在较新版本的Ubuntu中使用旧版本的Unity?

  3. 3

    如何在较新版本的Ubuntu中使用旧版本的Unity?

  4. 4

    使用firefox的更新版本

  5. 5

    如果我有较新版本的g ++,该如何强制使用旧版本的g ++?

  6. 6

    Android Studio调试器逐步使用旧版本的代码,而不是最新版本

  7. 7

    无法在Mac上安装旧版本的Intel Fortran

  8. 8

    如何在MAC上安装旧版本(1.6.18)svn

  9. 9

    Android SQLite。在更新版本时添加列

  10. 10

    获取更新版本的 QGIS

  11. 11

    在Mac上的哪里可以找到使用GCC编译器的最新版本?

  12. 12

    安装了sqlite3 v3.8,但默认情况下mac终端仍运行旧版本3.6

  13. 13

    安装了sqlite3 v3.8,但默认情况下mac终端仍运行旧版本3.6

  14. 14

    如何删除旧版本的Java并安装新版本

  15. 15

    如何在旧版本之上安装新版本?

  16. 16

    使用旧版本的jHipster

  17. 17

    允许使用旧版本的python

  18. 18

    活动使用旧版本的 Firefox

  19. 19

    如何排除旧版本的Maven依赖关系并使用它的新版本?

  20. 20

    使用最新版本的Perl编写旧版本的脚本

  21. 21

    Gradle依赖项:使用的是最新版本还是最旧版本?

  22. 22

    如何使用Selenium(Java)同时支持旧版本和新版本的Firefox

  23. 23

    如果我有较新版本,如何强制使用较旧版本的 g++?

  24. 24

    “ Visual Studio需要更新版本的Windows才能显示此内容。”

  25. 25

    如何使用`venv`更新Python虚拟环境以使用更新版本的Python?

  26. 26

    在NuGet中确定Visual Studio更新版本

  27. 27

    是否有更新版本的snort?

  28. 28

    更新版本化的.NET程序集引用

  29. 29

    文件的更新版本不适用

热门标签

归档