【问题标题】:Where does the Qt sqlite plugin look for extension librariesQt sqlite插件在哪里寻找扩展库
【发布时间】:2019-03-06 11:00:26
【问题描述】:

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

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

【问题讨论】:

    标签: qt sqlite qt5


    【解决方案1】:

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

    原始问题的答案是 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 的更多信息。他们会在加载时使程序崩溃。我的解决方法是从我在 C:\Qt\5.11.3\mingw53_32 的 Qt 安装中获取相同的库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多