Название: Не работает приложение с драйверов Postgresql на другой машине Отправлено: bronstein87 от Январь 17, 2017, 16:18 Откомпилил релизную версию приложения работающего с бд, накидал в папку все нужные длл-ки, длл-ки самого постгреса тоже положил, добавил плагин драйвера пострегса, после чего экзешник перестал чего-либо еще требовать и запустился. Затем я перенес приложение на другую машину, но там приложение почему-то не видит драйвер. Я уже замучался с этим, кто-нибудь, кто работал с постгресом через qt, подскажите в чем может быть проблема? dependency walker на другом компе показывает, что всё окей. Возможно, нужно устанавливать клиент постргеса на другой машине?
Название: Re: Не работает приложение с драйверов Postgresql на другой машине Отправлено: PimenS от Январь 17, 2017, 17:36 qsqlpsql.dll где лежит?
Название: Re: Не работает приложение с драйверов Postgresql на другой машине Отправлено: bronstein87 от Январь 17, 2017, 17:39 qsqlpsql.dll где лежит? \release\plugins\sqldriversНазвание: Re: Не работает приложение с драйверов Postgresql на другой машине Отправлено: PimenS от Январь 17, 2017, 17:42 Цитировать Затем я перенес приложение на другую машину и сделали там папку \release\plugins\sqldrivers? Название: Re: Не работает приложение с драйверов Postgresql на другой машине Отправлено: bronstein87 от Январь 17, 2017, 17:48 Цитировать Затем я перенес приложение на другую машину и сделали там папку \release\plugins\sqldrivers? да, \plugins\sqldrivers все это там есть Название: Re: Не работает приложение с драйверов Postgresql на другой машине Отправлено: PimenS от Январь 17, 2017, 17:55 Чаще всего я использую такую структуру:
Код: /MyProgram Попробуйте расположить плагины Qt не в "plugins\sqldrivers", а сразу в "sqldrivers" Название: Re: Не работает приложение с драйверов Postgresql на другой машине Отправлено: PimenS от Январь 17, 2017, 18:02 Еще как вариант.
Часто нужно устанавливать распространяемые пакеты Visual C++, для правильной работы библиотек PostgreSQL. Название: Re: Не работает приложение с драйверов Postgresql на другой машине Отправлено: GraninDm от Январь 18, 2017, 09:42 Это часть из моего инсталятора
[Files] Source: "z:\Coding\qt\Reports\Reports-Desktop_Qt_5_6_0_MinGW_32bit\release\Reports.exe"; DestDir: "{app}" Source: "{#Qt5DllDir}bin\Qt5Core.dll"; DestDir: "{app}" Source: "{#Qt5DllDir}bin\Qt5Gui.dll"; DestDir: "{app}" Source: "{#Qt5DllDir}bin\Qt5Sql.dll"; DestDir: "{app}" Source: "{#Qt5DllDir}bin\Qt5Widgets.dll"; DestDir: "{app}" Source: "{#Qt5DllDir}bin\Qt5SerialPort.dll"; DestDir: "{app}" Source: "{#Qt5DllDir}bin\libgcc_s_dw2-1.dll"; DestDir: "{app}" Source: "{#Qt5DllDir}bin\libwinpthread-1.dll"; DestDir: "{app}" Source: "{#Qt5DllDir}bin\libstdc++-6.dll"; DestDir: "{app}" Source: "{#Qt5DllDir}bin\icuin54.dll"; DestDir: "{app}" Source: "{#Qt5DllDir}bin\icuuc54.dll"; DestDir: "{app}" Source: "{#Qt5DllDir}bin\icudt54.dll"; DestDir: "{app}" Source: "{#Qt5DllDir}plugins\platforms\qwindows.dll"; DestDir: "{app}\platforms" Source: "{#Qt5DllDir}plugins\sqldrivers\qsqlpsql.dll"; DestDir: "{app}\sqldrivers" Source: "{#PgSqlDllDir}libpq.dll"; DestDir: "{app}" Source: "{#PgSqlDllDir}libintl.dll"; DestDir: "{app}" Source: "{#PgSqlDllDir}libeay32.dll"; DestDir: "{app}" Source: "{#PgSqlDllDir}ssleay32.dll"; DestDir: "{app}" Source: "c:\Windows\System32\msvcr100.dll"; DestDir: "{app}" Название: Re: Не работает приложение с драйверов Postgresql на другой машине Отправлено: Hellraiser от Январь 18, 2017, 09:52 Чтобы не гадать, возьмите вот это (https://ru.wikipedia.org/wiki/Dependency_Walker) и проверьте на целевой машине на предмет недостающих модулей. Версия утилиты (x86 или x64) определяется не разрядностью ОС, а разрядностью исследуемой программы или библиотеки.
Название: Re: Не работает приложение с драйверов Postgresql на другой машине Отправлено: GraninDm от Январь 18, 2017, 09:57 Так он написал:
dependency walker на другом компе показывает, что всё окей Название: Re: Не работает приложение с драйверов Postgresql на другой машине Отправлено: Пантер от Январь 18, 2017, 10:03 Мне под виндой помогало делать QCoreApplication::addLibraryPath (QCoreApplication::applicationDirPath () + "/plugins/");
Правда, давно это было. Название: Re: Не работает приложение с драйверов Postgresql на другой машине Отправлено: Hellraiser от Январь 18, 2017, 10:04 Walker'ом нужно проверить не только сам *.exe, но и плагины тоже. Для Qt модели подключения плагинов он не умеет распознавать такие зависимости. А чудес не бывает - или чего-то не хватает, или другая разрядность библиотеки Postgre.
|