Программа не находит плагин sqlite |
Здравствуйте, гость ( Вход | Регистрация )
Программа не находит плагин sqlite |
korwru |
5.4.2013, 0:57
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 24.2.2013 Пользователь №: 3726 Спасибо сказали: 0 раз(а) Репутация: 0 |
Компилирую. Всё запускается на машине с установленным QT, а на других машинах не запускается - выводит runtime error.
Причина в том, что программа ищет плагин sqlite только по пути, где находится QT. В папке с программой почему-то не ищет. В папку с программой помимо DLL также положил /platforms/qwindows.dll /sqldrivers/qsqlite.dll Смотрел зависимости с помощью ProcessExplorer. Подскажите, как сделать, чтобы на других машинах программа запускалась? Содержимое pro файла:
Исходники моей программы: https://bitbucket.org/korwru/wolq-qn/src |
|
|
lanz |
5.4.2013, 9:55
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Можно проверить что в пути к папке программы нет русских букв/пробелов (точно не вспомню но по моему была такая проблема).
У меня когда не находил sqlite он просто не мог создать соединение к БД, runtime error точно из-за него? Например дебажные версии библиотек (c d на конце), не? |
|
|
korwru |
6.4.2013, 0:06
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 24.2.2013 Пользователь №: 3726 Спасибо сказали: 0 раз(а) Репутация: 0 |
Можно проверить что в пути к папке программы нет русских букв/пробелов (точно не вспомню но по моему была такая проблема). У меня когда не находил sqlite он просто не мог создать соединение к БД, runtime error точно из-за него? Например дебажные версии библиотек (c d на конце), не? Да, runtime error точно из-за него. Смысл примерно следующий - если соединение с базой выношу в отдельный класс - то прога работает только на машине с установленным QT и пути берутся только из него. Если соединение с базой оставляю в классе с виджетом - например в стандартном примере MainWindow::MainWindow то тоже начинают подхватываться плагины, находящиеся в директории с программой. На оффсайте ещё продублировал вопрос http://qt-project.org/forums/viewthread/26444/ Проблема почему-то с классом cDataBase::cDataBase() - исходники в 1 сообщении. Из-за него обращение к папке с плагинами идёт только в директорию с установленным QT. Если соединение с базой напрямую прописать в QuickNotes::QuickNotes, то программа начинает искать плагины в т.ч. и в папке с программой sqldrivers. В итоге на ОС с QT - работает всегда. На ОС без QT работает только, если соединение перенести в quicknotes.cpp |
|
|
lanz |
8.4.2013, 9:00
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Инициализируется ДО того как создан объект QApplication, который создается в main. Скорее всего из-за этого и падает. Сделайте cDataBase членом класса QuickNotes. |
|
|
Текстовая версия | Сейчас: 6.2.2025, 3:25 |