Qt sqlite插件在哪里寻找扩展库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt sqlite插件在哪里寻找扩展库相关的知识,希望对你有一定的参考价值。

我已经在this thread中进行了相应的修改,以使Qt sqlite插件能够加载扩展。但是,当我运行SELECT load_extension('spatialite_mod')时,我现在得到错误The specified module could not be found

在Windows Qt安装中,我需要在哪里放置spatialite_mod.dll文件以便可以在运行时找到它?我已经尝试将它放在二进制目录中而没有任何成功。

答案

结果证明这是一个多部分问题。

原始问题的答案是Qt在工作目录(QDir::currentPath())和Windows PATH中查找库。

第1部分:

在Windows上,specified module could not be found错误也可能意味着找不到mod_spatialite.dll依赖项之一。在我的情况下,我忘记将这些依赖项移动到与mod_spatialite.dll相同的目录。他们包括:

  • libgcc_s_dw2-1.dll
  • 的libstdc ++ - 6.dll
  • libsqlite3-0.dll
  • libxml2-2.dll
  • zlib1.dll
  • libfreexl-1。等
  • libgeos_c-1.DLL
  • libgeos-3-5-0.dll
  • libiconv的-2.DLL
  • liblzma-5.cll
  • libproj-9。等

第2部分:

libspatialite附带的libgcc_s_dw2-1.dlllibstdc++-6.dll库不适用于Windows 10.阅读有关此herehere的更多信息。它们会在加载时崩溃程序。我的修复是从我的Qt安装中获取相同的库:C: Qt 5.11.3 mingw53_32。

以上是关于Qt sqlite插件在哪里寻找扩展库的主要内容,如果未能解决你的问题,请参考以下文章

qt实现-给SQLITE添加自定义函数

XCode4 - 在哪里寻找由核心数据创建的 sqlite 文件

windeployqt.exe 将 Qt 目录存放在哪里?

还在为寻找C++跨平台用户界面框架库而发愁吗?

Qt 如何连接到 android OS 中现有的 SQLite 文件?

我在哪里可以获得 qt 默认 plastique qss 文件?