Где плагин Qt sqlite ищет библиотеки расширений - PullRequest
0 голосов
/ 05 марта 2019

Я сделал соответствующую модификацию, найденную в этой теме , чтобы плагин Qt sqlite мог загружать расширения.Однако, когда я запускаю SELECT load_extension('spatialite_mod'), я теперь получаю ошибку The specified module could not be found

В установке Windows Qt, где мне нужно поместить файл spatialite_mod.dll, чтобы он мог быть найден во время выполнения?Я уже пытался поместить его в двоичную директорию безуспешно.

1 Ответ

0 голосов
/ 06 марта 2019

Оказалось, что это проблема из нескольких частей.

Ответ на оригинальный вопрос заключается в том, что Qt ищет библиотеки в рабочем каталоге (QDir::currentPath()) и в ПУТИ Windows.

Часть 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:

Библиотеки libgcc_s_dw2-1.dll и libstdc++-6.dll, поставляемые с libspatialite, не работают с Windows 10. Подробнее об этом здесь и здесь .Они будут аварийно завершать программу при загрузке.Для меня исправлением было получить те же библиотеки из моей установки Qt на C: \ Qt \ 5.11.3 \ mingw53_32.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...