我已经在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相同的目录。他们包括:
第2部分:
libspatialite附带的libgcc_s_dw2-1.dll
和libstdc++-6.dll
库不适用于Windows 10.阅读有关此here和here的更多信息。它们会在加载时崩溃程序。我的修复是从我的Qt安装中获取相同的库:C:\ Qt \ 5.11.3 \ mingw53_32。