qt - Qt sqlite插件在哪里寻找扩展库
问题描述
我已在此线程中进行了适当的修改,以使 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.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.dll
和libstdc++-6.dll
库不适用于 Windows 10。在此处和此处阅读有关此内容的更多信息。他们会在加载时使程序崩溃。我的解决方法是从我在 C:\Qt\5.11.3\mingw53_32 的 Qt 安装中获取相同的库。
推荐阅读
- google-sheets-formula - 从 Google 表格中的不同单元格运行相同的公式
- tsql - 如何在左外连接选择中使用主选择中的值 - T-SQL
- android - 在导航 ui 中按后退箭头执行操作
- java - Java AWT 图形类:制作正方形的行和列
- javascript - 由于 MIME 错误,CSS 在网页上不起作用
- c++ - 如何使用 Raylib 在 VSCode 中打包代码
- vue.js - nuxt:将隐藏数据传递给路由
- python - 根据条件删除连续的重复行
- ruby-on-rails - Rails5:最近将我的表单更改为嵌套表单,现在需要访问嵌套中的数组。如何重写我的jbuilder?
- r - 如何使用 R 从 Flex 元素中抓取表格和数据?