25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,156
1

Как подключить драйвера Mysql к Qt под WinXP?

01.08.2011, 12:15. Показов 9740. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Может кто подскажет как подключаются драйвера mySQL к Qt SDK под Windows?
Поставлен Qt_SDK_Win_offline_v1_1_2_en.exe, последняя версия MySQL.
Пробовал сделать как в
http://www.pikopong.com/blog/2... omment-147
Но получаю сообщение об ошибках - во вложении

Буду благодарен за любую ссылку или подсказку.
Миниатюры
Как подключить драйвера Mysql к Qt под WinXP?  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.08.2011, 12:15
Ответы с готовыми решениями:

Драйвера для Canon: выбрать WinXP или WinXP SP2?
При выборе операционки есть возможность указать Windows нужной версии: Windows XP Windows XP SP2...

Как заставить работать МФУ j5520 под Win 7? Родные драйвера только под XP
Как заставить работать МФУ j5520 под Win 7? Родные драйвера только под XP. На сайте HP драйвера...

пк неработает в сети под winXP,под 7 норм. в чем причина?
здраствуйте, проблема такая,буде приятно если поможете. в сети 20 компов, все под управлением...

Не загружается WinXP после установки драйвера
После установки драйвера на bluetooth было предложено перезагрузить систему, после согласия комп...

31
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
01.08.2011, 12:37 2
АТерентьев, Все проще, заходишь в qt\src\plugins\sqldrivers\mysql , открываешь там файл .pro в креаторе и собираешь, иногда приходится в pro файле пути подкорректировать, ну и в системной переменной Path все путь к Qt и minGW должны быть прописаны. Где то после этого должна появиться dll, ну ее и подключаешь так же путем некоторых манипуляций в pro файле уже твоего проекта..
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,156
01.08.2011, 17:54  [ТС] 3
Спасибо!
Но что-то ошибки победить не удается.
mysql.h находится, если я правильно понимаю, в каталоге "C:\Program Files\MySQL\MySQL Server 5.5\include" и ,видимо, этот путь нужно где-то прописать.

А вторая ошибка пока непонятна.

Я прошу прощения - второй день за Qt
Миниатюры
Как подключить драйвера Mysql к Qt под WinXP?   Как подключить драйвера Mysql к Qt под WinXP?  
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
01.08.2011, 17:59 4
АТерентьев, В папке с mySQL есть файлы mysql.h и еще библиотека mysql.lib кажется, к ним прям в этом проекте можешь путь прописать, либо добавить в Path путь к папкам mySQL (только тогда комп перегружать придется)
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
01.08.2011, 18:09 5
Если установлен MySQL, то посмотри в нём есть ли папка include и lib/opt. Если есть, но нормально... а если нет, то придётся скачать архив с мусклом и оттуда взять это. По какой-то причине, я содержимое архива распаковал в папку C:\MySQL... почему-то в Program Files не стал... возможно, какие-то проблемы были. Не помню уже.

Теперь действуем по инструкции:
В консоли переходим в папку C:\Qt\2010.05\qt\src\plugins\sqldrivers\mysql (я ещё в эту папку зачем-то скопировал файл libmysql.dll из установленного мускла... возможно, это лишнее).
И выполняем там команду:
Код
qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MYSQL\MySQL Server <version>\lib\opt\libmysql.lib" mysql.pro
Естественно, пути свои укажи.
После этого я запускал mingw32-make.exe (он находится в C:\Qt\2010.05\mingw\bin\... пропиши её в path).
Теперь по идее можно в свой проект добавить
Код
QT += sql
...и пользоваться. Только у меня было всё не так просто... какие-то сложности ещё были, но уже не помню.
1
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,156
01.08.2011, 19:10  [ТС] 6
vitaly1981 - Прописал в Path
Код
C:\Program Files\MySQL;C:\Program Files\MySQL\MySQL Server 5.5;C:\Program Files\MySQL\MySQL Server 5.5\include\
Но что-то ошибки те же. Может не так прописал, скажем Program Files с пробелом внутри и нужно где-то кавычки ставить.
Если не сложно какая строка должна появиться в .pro чтобы эти файлы прописать, хотя один, второй по аналогии сделаю. Можно как то путь прописать или непосредственно сделать Include файл ?
Humanoid - у Виталия, мне кажется тоже самое только попроще - команды встроены в оболочку.
А насчет включения файлов - проблемы будут те же.
include директория есть - там файл mysql.h
Файл libmysql.dll содержится в директории - C:\Program Files\MySQL\MySQL Server 5.5\lib.
Директории lib/opt нет.
Нужен пример как прописывать и где эти пути ?
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
01.08.2011, 19:22 7
АТерентьев, Насколько помню я вообще в тех файлах просто прописывал полный путь к mysql.h
Да это тоже самое, мне как то лень было это все в командной строке набирать.
Тем более у Qt вообще есть странные приколы с путями.
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,156
01.08.2011, 19:35  [ТС] 8
Это помогло -

Код
#include <C:\Program Files\MySQL\MySQL Server 5.5\include\mysql.h>
Осталось с этой ошибочкой разобраться

Код
:-1: ошибка: \lib\libmysql.lib: No such file or directory
- где прописываются пути ? Здесь ведь недостаточно прописать путь к libmysql.lib
Файл находится в директории "C:\Program Files\MySQL\MySQL Server 5.5\lib"
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
01.08.2011, 19:45 9
АТерентьев, А вспомнил, короче это он берет в файле Makefile. Простейший способ, открываешь этот файл редактором и прописываешь путь к lib файлу, сохраняешь и запускаешь сборку.
У меня там такая строка получилась:
C++
1
"LIBS+=C:\Program Files\MySQL\MySQL Server 5.0\lib\opt\libmysql.lib" -o Makefile mysql.pro
Добавлено через 3 минуты
И еще вот такая строчка ниже была

C++
1
2
qmake: qmake_all FORCE
    @$(QMAKE) -win32 "INCLUDEPATH+=C:\Program Files\MySQL\MySQL Server 5.0\include" "LIBS+=C:\Program Files\MySQL\MySQL Server 5.0\lib\opt\libmysql.lib" -o Makefile mysql.pro
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,156
01.08.2011, 20:01  [ТС] 10
Вот такая строка в QCreator формируется

Код
qmake.exe C:\QtSDK\QtSources\4.7.3\src\plugins\sqldrivers\mysql\mysql.pro -r -spec win32-g++ INCLUDEPATH+=%mysql%\include LIBS+=%mysql%\lib\libmysql.lib
Если исправить
Код
LIBS+= C:\Program Files\MySQL\MySQL Server 5.5\lib\libmysql.lib
Ругается что
Unescaped back slashes are deprecated,
Файл не найден [internal]
правда ошибки не дает, но пишет просто файл не найден, не указывая какой файл. Что бы это значило?
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
01.08.2011, 20:04 11
АТерентьев, Если в пути есть пробелы, то это все берется в кавычки, посмотри внимательно примеры строк, которые я написал.
1
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,156
01.08.2011, 20:52  [ТС] 12
Заменил слэши на обратные , вроде ошибок не дает.
Надо бы попробовать

Добавлено через 21 минуту
Вот текущий вариант - формируемый SDK
(На обратные слэши не ругается , но в LIBS - разбивает все по пробелам ...
Код
qmake.exe C:\QtSDK\QtSources\4.7.3\src\plugins\sqldrivers\mysql\mysql.pro -r -spec win32-g++ "INCLUDEPATH+=%mysql%/include" " LIBS+=C:/Program Files/MySQL/MySQL Server 5.5/lib/libmysql.lib"
Добавлено через 17 минут
Вот вариант -
qmake.exe C:\QtSDK\QtSources\4.7.3\src\plugins\sqldrivers\mysql\mysql.pro -r -spec win32-g++ "INCLUDEPATH+=%mysql%/MySQL Server 5.5/include" "LIBS+=%mysql%/MySQL Server 5.5/lib/libmysql.lib"
Ругается только на пробелы в LIBS - /MySQL нет такого файла или директории
Server - Нет такого файла или директории
5.5/lib/libmysql.lib - нет такого файла или директории.
И когда вместо %mysql% поставить реальный путь - тоже самое.
Вообщем не могу догадаться что делать...
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
02.08.2011, 05:25 13
АТерентьев, Блин....я ведь тебе выложил рабочие уже пути, тебе только на свой поменять нужно. Не надо слеши менять.
можешь LIBS в pro файле прописать, поидее на основании его Makefile формируется, но точно не помню уже.
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,156
02.08.2011, 08:55  [ТС] 14
Так я как школьник все и повторил вчера - см. во вложении, но не прокатило чтой-то. Видно изменения были введены - обратные слэши запретили, как устаревшие , убрали каталог \opt - в инструкциях его вроде нет http://www.pikopong.com/blog/2... omment-147 .
Миниатюры
Как подключить драйвера Mysql к Qt под WinXP?   Как подключить драйвера Mysql к Qt под WinXP?  
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
02.08.2011, 09:07 15
Не, в параметры сборки я опции не добавлял

Вот нашел, последний раз собирал pro файл такой делал:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
TARGET   = qsqlmysql
 
HEADERS     = ../../../sql/drivers/mysql/qsql_mysql.h
SOURCES     = main.cpp \
          ../../../sql/drivers/mysql/qsql_mysql.cpp
 
unix: {
    isEmpty(QT_LFLAGS_MYSQL) {
        !contains(LIBS, .*mysqlclient.*):!contains(LIBS, .*mysqld.*) {
            use_libmysqlclient_r:LIBS *= -lmysqlclient_r
            else:LIBS *= -lmysqlclient
        }
    } else {
        LIBS *= $$QT_LFLAGS_MYSQL
        QMAKE_CXXFLAGS *= $$QT_CFLAGS_MYSQL
    }
}
 
win32:!contains(LIBS, .*mysql.*):!contains(LIBS, .*mysqld.*) {
    LIBS     *= "D:/Program Files/MySQL/MySQL Server 5.0/lib/opt/libmysql.lib"
}
 
include(../qsqldriverbase.pri)
ну и путь к mysql.h прописывал где ругался

Добавлено через 2 минуты
Собирал я на 4.7.0 , сомневаюсь что там что то принципиальное поменяться могло.
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,156
02.08.2011, 13:19  [ТС] 16
Все получилось после того как путь заключил в одинарные кавычки ' ... ' и поставил обратные слэши.
Т.е. просто открываем проект по сборке mysql (C:\QtSDK\QtSources\4.7.3\src\plugins\sqldrivers\mysq\mysql.prol) и правим пути на вкладке параметров сборки, собираем. Затем 4 файла, указанные на 2 вложении (по 2 файла из debug и release) переписываем в тот же каталог , который указан во втором вложении.
Затем не забываем в файле проекта дописать QT += sql и можно пользоваться MySQL.
Всем спасибо!
Миниатюры
Как подключить драйвера Mysql к Qt под WinXP?   Как подключить драйвера Mysql к Qt под WinXP?  
0
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
17.02.2012, 15:29 17
тема-тема... ОЖИВИ!
Доброго времени суток! имею приблизительно сходную проблему, скомпилил плагин для MySQL драйвера, положил в %QTDIR%\plugins\sqldrivers\ полученную debug версию плагина (в release так и не получилось скомпилить, видимо нужно какой-то хитрый ключик в pro файле прописать), пишу сверх крутую программу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <QtCore/QCoreApplication>
#include <QtSql>
 
int main(int argc, char *argv[]){
    QCoreApplication a(argc, argv);
 
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("Mysql@po");
    db.setDatabaseName("dbNAme");
    db.setUserName("myUser");
    db.setPassword("myPassword");
    bool ok = db.open();
 
    QCoreApplication::addLibraryPath("%QTDIR%/plugins/sqldrivers");
    qDebug() << QCoreApplication::libraryPaths();
    return a.exec();
}
на выходе получаю:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC
пробовал подсовывать полученную dll-ку в директорию, откуда запускается программа - те же песня.
ткните носом пожалуйста Ув. Аll, что делаю не так?
0
25 / 24 / 18
Регистрация: 16.10.2009
Сообщений: 1,156
17.02.2012, 16:31  [ТС] 18
К сожалению нет под рукой QT, но по сообщению видно , что система не видит скомпиллированного драйвера. У меня в последнем сообщении показано что и где должно лежать. В зависимости под что собирается программа места могут быть разные. У меня на втором скриншоте показано 4 файла для MySql , полученные после компилляции для desktop. Здесь же 4 файла для sqlLite, которые есть по умолчанию. Если нужно не для desktopa - найдите то место , где должны лежать просто по поиску, скажем для sqlLite.
Остальное вроде все описано.
0
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
17.02.2012, 17:13 19
делал я описанные выше действия - результат всё тот же к сожалению

Цитата Сообщение от l_a_m Посмотреть сообщение
положил в %QTDIR%\plugins\sqldrivers\ полученную debug версию плагина
0
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
17.02.2012, 17:43 20
В main.cpp
C++
1
a.addLibraryPath(a.applicationDirPath()+"/plugins");
собранную библиотеку в: папка с программой/plugins/sqldrivers
Учтите имена подпапок должны быть именно такие, а не другие, с другими может не работать, проверено.
0
17.02.2012, 17:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2012, 17:43
Помогаю со студенческими работами здесь

Драйвера к SCX-4100 на WinXP 64 бит.
Здравствуйте! Помогите найти драйвера на МФУ Samsung SCX-4100 для WinXP 64 битная система....

Написание драйвера для плоттера в WinXP
Имеется два устройство вывода на печать чертежей (перьевой плоттер) GraphiPlot-01 для COM портов...

Lenovo B50-30 драйвера для WinXP
Привет, ребята, помогите советом. На ноутбук Lenovo B5030 нужно поставить WinXP x64. В первую...

MySQL и C++. Как подключить <mysql.h>?
Не получилось( Тема старая, но решения универсального не нашел... #include &lt;iostream&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru