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

时间:2019-03-05 15:49:40

标签: qt sqlite qt5

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

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

1 个答案:

答案 0 :(得分:0)

这原来是一个多方面的问题。

原始问题的答案是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.dll
  • libgeos_c-1.dll
  • libgeos-3-5-0.dll
  • libiconv-2.dll
  • liblzma-5.cll
  • libproj-9.dll

第2部分:

libspatialite附带的libgcc_s_dw2-1.dlllibstdc++-6.dll库在Windows 10上不起作用。有关此herehere的更多信息。他们将在加载时使程序崩溃。对我来说,解决方法是从Qt安装目录中的C:\ Qt \ 5.11.3 \ mingw53_32获取相同的库。