Russian Qt Forum

Qt => Вопросы новичков => Тема начата: stanukih от Ноябрь 13, 2015, 11:54



Название: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 13, 2015, 11:54
Написал простую программу для работы с mysql. На мое пк все прекрасно работает. Переношу на другие пк вылазит ошибка driver not loaded. К exe положил libmysql.dll, platforms, sqldrivers. Что можно предпринять?


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 13, 2015, 12:31
забыл сказать :
qt 5.5.1
компилятор mingw
рабочая система windows 7 x64

требуется развернуть на windows xp/7 x32/7 x64


Название: Re: перенести приложение на другой пк
Отправлено: __Heaven__ от Ноябрь 13, 2015, 12:35
Может попробовать запустить windeployqt?


Название: Re: перенести приложение на другой пк
Отправлено: Bepec от Ноябрь 13, 2015, 12:38
длл для mysql  положите в папку sqldrivers, если не сделали этого.


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 13, 2015, 12:44
соответственно  platforms, sqldrivers заполнены (в sqldrivers плагин мускула, platforms скопировал из qt). windeployqt я использовал. Он действительно накидал намного больше dll, но и с ними он не работал (насколько понял они не связаны с моей программой). Может не правильно сказал сама программа запускается, а при попытке законектится вылетает ошибка (при этом программа не падает).


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 13, 2015, 16:56
Цитировать
длл для mysql  положите в папку sqldrivers, если не сделали этого.

сделал не помогло.


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 13, 2015, 17:35
Заметил что он все-таки что-то ищет в c:\\Qt. При переименовании этой папки он стал выдавать что драйвер не загружен. Что он может там искать чего еще нет?


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 13, 2015, 17:42
создал на пк куда буду ставить папку C:\Qt\5.5\mingw492_32\plugins\sqldrivers скинул туда плагин и вуаля все заработало. Но это сильно кастыль. Может хоть ктото понимает почему так?


Название: Re: перенести приложение на другой пк
Отправлено: Alex Custov от Ноябрь 13, 2015, 17:50
архив с exe примером (простейшая программа на 5 строк, просто открывающая соединение) и dll в студию.


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 13, 2015, 18:02
Вот простейший проект


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 13, 2015, 18:05
сейчас проверил с ним тоже самое


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 13, 2015, 18:17
забыл кинуть libmysql.dll а сейчас не уходит :-[


Название: Re: перенести приложение на другой пк
Отправлено: Alex Custov от Ноябрь 13, 2015, 19:02
забыл кинуть libmysql.dll а сейчас не уходит :-[

залей на ifolder.ru всё целиком


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 13, 2015, 20:48
ftp://upl.stg682.rusfolder.com/
логин stanukih@gmail.com
пароль 9379992

извиняюсь что так долго модем adsl скорость не ахти..


Название: Re: перенести приложение на другой пк
Отправлено: Alex Custov от Ноябрь 14, 2015, 13:50
извиняюсь что так долго модем adsl скорость не ахти..

550 /build-untitled-Desktop_Qt_5_5_1_MinGW_32bit-Debug.zip: No such file or directory


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 14, 2015, 14:14
Цитировать
550 /build-untitled-Desktop_Qt_5_5_1_MinGW_32bit-Debug.zip: No such file or directory

http://rusfolder.com/44446817


Название: Re: перенести приложение на другой пк
Отправлено: Alex Custov от Ноябрь 16, 2015, 15:42
Цитировать
550 /build-untitled-Desktop_Qt_5_5_1_MinGW_32bit-Debug.zip: No such file or directory
http://rusfolder.com/44446817

У тебя база и SQL плагин будет грузиться в глобальном пространстве ещё до того как загрузились все основные Qt плагины. Так делать нельзя. Правильный код:

Код
C++ (Qt)
MainWindow::MainWindow(QWidget *parent) :
   QMainWindow(parent),
   ui(new Ui::MainWindow)
{
   QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL","con1");
 
   ui->setupUi(this);
   db.setDatabaseName("mysql");
   db.setHostName("localhost");
   ...
 


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 16, 2015, 17:04
Тогда проблема будет решена? И еще может это глупо учу c++ совсем недавно - не получится ли так что объект удалится после выхода из конструктора?


Название: Re: перенести приложение на другой пк
Отправлено: Alex Custov от Ноябрь 16, 2015, 17:49
Если ты ещё и С++ учишь, то отложи Qt подальше месяца на два и изучи С++ включая главные особенности С++11. Иначе ничего хорошего из этого не получится.

По поводу удалится или нет - читай документацию. Cоединение, созданное через QSqlDatabase::addDatabase(), будет существовать пока его явным образом не удалишь. Внутри это сделано через какие-то статические переменные, очевидно.


Название: Re: перенести приложение на другой пк
Отправлено: stanukih от Ноябрь 16, 2015, 18:08
Спасибо. Учу в смысле второй год и стараюсь сразу использовать чтоб не забылось. Поэтому и учу с++ что очень понравился Qt (кроме этого третий год на делфях пишу). За ответы спасибо попробую изменить и отпишусь.