3 / 3 / 2
Регистрация: 29.06.2012
Сообщений: 118
|
|||||||||||
1 | |||||||||||
QT 5.1.1 и MySQL 5.5 собрать правильно10.01.2014, 10:44. Показов 3602. Ответов 8
Метки нет (Все метки)
Здравствуйте дорогие форумчане.
Проблема есть. Решил собрать проект для подключения из QT 5.1.1 к базе данных MySQL. 1 Необходимо собрать драйвер MySQL для подключения QT к базе данных. Должны получиться 4 файла - libqsqlmysql.a libqsqlmysqld.a qsqlmysql.dll qsqlmysqld.dll Эти 4 файла необходимо раскидать по директориям C:\Qt5.1.0\5.1.0\mingw48_32\plugins\sqldrivers, с расширением .а в C:\Qt5.1.0\5.1.0\mingw48_32\lib. и файл libmysql.dll забросим из %mysql% в C:\Windows. и ещё прописать переменную PATH в системе Windows с путями E:\Qt\5.1.1\mingw48_32\bin E:\Qt\Tools\mingw48_32\lib Не уверен в директориях. Директории можно посмотреть на видео, которое где-то здесь на форуме. Инструкция для создания этих файлов на всех сайтах есть, но она не полная. В конце концов я нашел сайт - http://kupchyklabs.com.ua/qt-5... %82%D0%B0/ где просто скачал необходимые файлы. Правда там все собиралось в QT 5.1.0. Но пример, который приведен в конце на том, сайте - работает. 2 Теперь после всего этого, создаю проект в QT 5.1.1 Прописываю вот такой код в файле mainwindow.cpp:
Запускается E:\qt proecte\build-base3-Desktop_Qt_5_1_1_MinGW_32bit-Debug\debug\base3.exe... QSqlDatabase: QMYSQL55 driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 Failed to connect to root mysql admin E:\qt proecte\build-base3-Desktop_Qt_5_1_1_MinGW_32bit-Debug\debug\base3.exe завершился с кодом 0. Помогите, а то уже 3 дня мучаюсь. Дайте пожалуйста пошаговую инструкцию по сборке драйвера на мою версию QT 5.1.1 и MySQL Server 5.5. Данные все предоставлю, могу открыть доступ через инет, только страшно - вирусы, кейлогеры. ХЕЛППППППП, люди!!!!!
0
|
10.01.2014, 10:44 | |
Ответы с готовыми решениями:
8
правильно собрать ПК Правильно собрать код Qt 5.7 + MySQL 5.7 собрать плагин для работы QT с бд MYSQL Как собрать проект в релизе |
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
10.01.2014, 12:08 | 2 |
Плагины должны быть собраны той же версией компилятора что и сами библиотеки Qt + той с той же версией Qt.
У вас же версии Qt отличаются. Просто соберите плагин сами, качать готовые сборки плагинов в 99% случаев бессмысленно.
1
|
3 / 3 / 2
Регистрация: 29.06.2012
Сообщений: 118
|
|||||||
10.01.2014, 12:26 [ТС] | 3 | ||||||
Вот именно этим и занимался
Кликните здесь для просмотра всего текста
Setting up environment for Qt usage...
E:\Qt\5.1.1\mingw48_32>set mysql=C:\PROGRA~1\MYSQL\MYSQLS~1.5 E:\Qt\5.1.1\mingw48_32>cd.. E:\Qt\5.1.1>cd src E:\Qt\5.1.1\Src>cd qtbase\src E:\Qt\5.1.1\Src\qtbase\src>cd plugins\sqldrivers\mysql E:\Qt\5.1.1\Src\qtbase\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=C:\PROGR A~1\MYSQL\MYSQLS~1.5\INCLUDE" "LIBS+=C:\PROGRA~1\MYSQL\MYSQLS~1.5\LIB\LIBMYSQL.L IB" -O Makefile mysql.pro ***Unknown option -O Usage: qmake [mode] [options] [files] QMake has two modes, one mode for generating project files based on some heuristics, and the other for generating makefiles. Normally you shouldn't need to specify a mode, as makefile generation is the default mode for qmake, but you may use this to test qmake on an existing project Mode: -project Put qmake into project file generation mode In this mode qmake interprets files as files to be built, defaults to *; *; *; *.ts; *.xlf; *.qrc Note: The created .pro file probably will need to be edited. For example add the QT variable to specify what modules are required. -makefile Put qmake into makefile generation mode (default) In this mode qmake interprets files as project files to be processed, if skipped qmake will try to find a project file in your current working directory Warnings Options: -Wnone Turn off all warnings; specific ones may be re-enabled by later -W options -Wall Turn on all warnings -Wparser Turn on parser warnings -Wlogic Turn on logic warnings (on by default) -Wdeprecated Turn on deprecation warnings (on by default) Options: * You can place any variable assignment in options and it will be * * processed as if it was in [files]. These assignments will be parsed * * before [files]. * -o file Write output to file -d Increase debug level -t templ Overrides TEMPLATE as templ -tp prefix Overrides TEMPLATE so that prefix is prefixed into the value -help This help -v Version information -after All variable assignments after this will be parsed after [files] -norecursive Don't do a recursive search -recursive Do a recursive search -set <prop> <value> Set persistent property -unset <prop> Unset persistent property -query <prop> Query persistent property. Show all if <prop> is empty. -cache file Use file as cache [makefile mode only] -spec spec Use spec as QMAKESPEC [makefile mode only] -nocache Don't use a cache file [makefile mode only] -nodepend Don't generate dependencies [makefile mode only] -nomoc Don't generate moc targets [makefile mode only] -nopwd Don't look for files in pwd [project mode only] E:\Qt\5.1.1\Src\qtbase\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=C:\PROGR A~1\MYSQL\MYSQLS~1.5\INCLUDE" "LIBS+=C:\PROGRA~1\MYSQL\MYSQLS~1.5\LIB\LIBMYSQL.L IB" -o Makefile mysql.pro E:\Qt\5.1.1\Src\qtbase\src\plugins\sqldrivers\mysql>mingw32-make mingw32-make -f Makefile.Release all mingw32-make[1]: Entering directory 'E:/Qt/5.1.1/Src/qtbase/src/plugins/sqldrive rs/mysql' E:\Qt\\5.1.1\mingw48_32\bin\moc.exe -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST _FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_ LIB -D__GNUC__ -DWIN32 -I. -I"C:\PROGRA~1\MYSQL\MYSQLS~1.5\INCLUDE" -I"E:\Qt\5.1 .1\mingw48_32\include" -I"E:\Qt\5.1.1\mingw48_32\include\QtSql" -I"E:\Qt\5.1.1\m ingw48_32\include\QtSql\5.1.1" -I"E:\Qt\5.1.1\mingw48_32\include\QtSql\5.1.1\QtS ql" -I"E:\Qt\5.1.1\mingw48_32\include\QtCore" -I"E:\Qt\5.1.1\mingw48_32\include\ QtCore\5.1.1" -I"E:\Qt\5.1.1\mingw48_32\include\QtCore\5.1.1\QtCore" -I".moc\rel ease_shared" -I"..\..\..\..\mkspecs\win32-g++" main.cpp -o .moc\release_shared\m ain.moc g++ -c -pipe -fno-keep-inline-dllexport -O2 -std=c++0x -fno-exceptions -frtti -W all -Wextra -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCE PTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"C:\PROGRA~1\M YSQL\MYSQLS~1.5\INCLUDE" -I"E:\Qt\5.1.1\mingw48_32\include" -I"E:\Qt\5.1.1\mingw 48_32\include\QtSql" -I"E:\Qt\5.1.1\mingw48_32\include\QtSql\5.1.1" -I"E:\Qt\5.1 .1\mingw48_32\include\QtSql\5.1.1\QtSql" -I"E:\Qt\5.1.1\mingw48_32\include\QtCor e" -I"E:\Qt\5.1.1\mingw48_32\include\QtCore\5.1.1" -I"E:\Qt\5.1.1\mingw48_32\inc lude\QtCore\5.1.1\QtCore" -I".moc\release_shared" -I"..\..\..\..\mkspecs\win32-g ++" -o .obj\release_shared\main.o main.cpp E:\Qt\\5.1.1\mingw48_32\bin\moc.exe -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST _FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_ LIB -D__GNUC__ -DWIN32 -I. -I"C:\PROGRA~1\MYSQL\MYSQLS~1.5\INCLUDE" -I"E:\Qt\5.1 .1\mingw48_32\include" -I"E:\Qt\5.1.1\mingw48_32\include\QtSql" -I"E:\Qt\5.1.1\m ingw48_32\include\QtSql\5.1.1" -I"E:\Qt\5.1.1\mingw48_32\include\QtSql\5.1.1\QtS ql" -I"E:\Qt\5.1.1\mingw48_32\include\QtCore" -I"E:\Qt\5.1.1\mingw48_32\include\ QtCore\5.1.1" -I"E:\Qt\5.1.1\mingw48_32\include\QtCore\5.1.1\QtCore" -I".moc\rel ease_shared" -I"..\..\..\..\mkspecs\win32-g++" ..\..\..\sql\drivers\mysql\qsql_m ysql.cpp -o .moc\release_shared\qsql_mysql.moc g++ -c -pipe -fno-keep-inline-dllexport -O2 -std=c++0x -fno-exceptions -frtti -W all -Wextra -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCE PTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"C:\PROGRA~1\M YSQL\MYSQLS~1.5\INCLUDE" -I"E:\Qt\5.1.1\mingw48_32\include" -I"E:\Qt\5.1.1\mingw 48_32\include\QtSql" -I"E:\Qt\5.1.1\mingw48_32\include\QtSql\5.1.1" -I"E:\Qt\5.1 .1\mingw48_32\include\QtSql\5.1.1\QtSql" -I"E:\Qt\5.1.1\mingw48_32\include\QtCor e" -I"E:\Qt\5.1.1\mingw48_32\include\QtCore\5.1.1" -I"E:\Qt\5.1.1\mingw48_32\inc lude\QtCore\5.1.1\QtCore" -I".moc\release_shared" -I"..\..\..\..\mkspecs\win32-g ++" -o .obj\release_shared\qsql_mysql.o ..\..\..\sql\drivers\mysql\qsql_mysql.cp p E:\Qt\\5.1.1\mingw48_32\bin\moc.exe -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST _FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_ LIB -D__GNUC__ -DWIN32 -I. -I"C:\PROGRA~1\MYSQL\MYSQLS~1.5\INCLUDE" -I"E:\Qt\5.1 .1\mingw48_32\include" -I"E:\Qt\5.1.1\mingw48_32\include\QtSql" -I"E:\Qt\5.1.1\m ingw48_32\include\QtSql\5.1.1" -I"E:\Qt\5.1.1\mingw48_32\include\QtSql\5.1.1\QtS ql" -I"E:\Qt\5.1.1\mingw48_32\include\QtCore" -I"E:\Qt\5.1.1\mingw48_32\include\ QtCore\5.1.1" -I"E:\Qt\5.1.1\mingw48_32\include\QtCore\5.1.1\QtCore" -I".moc\rel ease_shared" -I"..\..\..\..\mkspecs\win32-g++" ..\..\..\sql\drivers\mysql\qsql_m ysql_p.h -o .moc\release_shared\moc_qsql_mysql_p.cpp g++ -c -pipe -fno-keep-inline-dllexport -O2 -std=c++0x -fno-exceptions -frtti -W all -Wextra -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCE PTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"C:\PROGRA~1\M YSQL\MYSQLS~1.5\INCLUDE" -I"E:\Qt\5.1.1\mingw48_32\include" -I"E:\Qt\5.1.1\mingw 48_32\include\QtSql" -I"E:\Qt\5.1.1\mingw48_32\include\QtSql\5.1.1" -I"E:\Qt\5.1 .1\mingw48_32\include\QtSql\5.1.1\QtSql" -I"E:\Qt\5.1.1\mingw48_32\include\QtCor e" -I"E:\Qt\5.1.1\mingw48_32\include\QtCore\5.1.1" -I"E:\Qt\5.1.1\mingw48_32\inc lude\QtCore\5.1.1\QtCore" -I".moc\release_shared" -I"..\..\..\..\mkspecs\win32-g ++" -o .obj\release_shared\moc_qsql_mysql_p.o .moc\release_shared\moc_qsql_mysql _p.cpp g++ -Wl,-s -shared -Wl,--out-implib,E:\Qt\5.1.1\Src\qtbase\plugins\sqldrivers\li bqsqlmysql.a -o ..\..\..\..\plugins\sqldrivers\qsqlmysql.dll .obj/release_shared /main.o .obj/release_shared/qsql_mysql.o .obj/release_shared/moc_qsql_mysql_p.o C:\PROGRA~1\MYSQL\MYSQLS~1.5\LIB\LIBMYSQL.LIB -llibmysql -LE:\Qt\\5.1.1\mingw48 _32\lib -lQt5Sql -lQt5Core e:/qt/tools/mingw48_32/bin/../lib/gcc/i686-w64-mingw32/4.8.0/../../../../i686-w6 4-mingw32/bin/ld.exe: cannot find -llibmysql collect2.exe: error: ld returned 1 exit status Makefile.Release:80: recipe for target '..\..\..\..\plugins\sqldrivers\qsqlmysql .dll' failed mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysql.dll] Error 1 mingw32-make[1]: Leaving directory 'E:/Qt/5.1.1/Src/qtbase/src/plugins/sqldriver s/mysql' makefile:38: recipe for target 'release-all' failed mingw32-make: *** [release-all] Error 2 E:\Qt\5.1.1\Src\qtbase\src\plugins\sqldrivers\mysql>mingw32 -make "mingw32" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. E:\Qt\5.1.1\Src\qtbase\src\plugins\sqldrivers\mysql>mingw32-make mingw32-make -f Makefile.Release all mingw32-make[1]: Entering directory 'E:/Qt/5.1.1/Src/qtbase/src/plugins/sqldrive rs/mysql' g++ -Wl,-s -shared -Wl,--out-implib,E:\Qt\5.1.1\Src\qtbase\plugins\sqldrivers\li bqsqlmysql.a -o ..\..\..\..\plugins\sqldrivers\qsqlmysql.dll .obj/release_shared /main.o .obj/release_shared/qsql_mysql.o .obj/release_shared/moc_qsql_mysql_p.o C:\PROGRA~1\MYSQL\MYSQLS~1.5\LIB\LIBMYSQL.LIB -llibmysql -LE:\Qt\\5.1.1\mingw48 _32\lib -lQt5Sql -lQt5Core e:/qt/tools/mingw48_32/bin/../lib/gcc/i686-w64-mingw32/4.8.0/../../../../i686-w6 4-mingw32/bin/ld.exe: cannot find -llibmysql collect2.exe: error: ld returned 1 exit status Makefile.Release:80: recipe for target '..\..\..\..\plugins\sqldrivers\qsqlmysql .dll' failed mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysql.dll] Error 1 mingw32-make[1]: Leaving directory 'E:/Qt/5.1.1/Src/qtbase/src/plugins/sqldriver s/mysql' makefile:38: recipe for target 'release-all' failed mingw32-make: *** [release-all] Error 2 E:\Qt\5.1.1\Src\qtbase\src\plugins\sqldrivers\mysql> и в конце ошибка...уже в душе матюкнулся.
0
|
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
10.01.2014, 12:41 | 4 |
Должно быть что-то типа:
1
|
3 / 3 / 2
Регистрация: 29.06.2012
Сообщений: 118
|
|
10.01.2014, 13:10 [ТС] | 5 |
Когда Вы мне пишите, то я наверное читаю Ваши мысли. Сам увидел ошибку. Прописывал libmysql.lib заглавными буквами. Не думал, что из-за регистра будет ошибка.
Файлы получил. Раскидал по директориям \mingw48_32\plugins\sqldrivers \mingw48_32\lib но ошибка осталась. Напишите мне и я прочитаю Ваши мысли Что делать? Может теперь я проект не правильно собираю?? Заранее Вам благодарен. Добавлено через 6 минут вот такая ошибка Запускается E:\qt proecte\build-base3-Desktop_Qt_5_1_1_MinGW_32bit-Debug\debug\base3.exe... QSqlDatabase: QMYSQL55 driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 Failed to connect to root mysql admin E:\qt proecte\build-base3-Desktop_Qt_5_1_1_MinGW_32bit-Debug\debug\base3.exe завершился с кодом 0
0
|
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
10.01.2014, 13:21 | 6 |
Почему вы пишете QMYSQL55 вместо QMYSQL?
1
|
3 / 3 / 2
Регистрация: 29.06.2012
Сообщений: 118
|
|
10.01.2014, 13:34 [ТС] | 7 |
Запускается E:\qt proecte\build-base3-Desktop_Qt_5_1_1_MinGW_32bit-Debug\debug\base3.exe...
OKKKKK! E:\qt proecte\build-base3-Desktop_Qt_5_1_1_MinGW_32bit-Debug\debug\base3.exe завершился с кодом 0 Заработало. УРААААААААА!!!!!!!!!! Много много фэнькью!!!! У меня база называется MYSQL55, вот и писал. Новичок я в Qt. Ещё не пробовал простые программы писать, а уже полез писать доступ к БД. Ещё раз много много thank you!!! Хороший ты человек RazrFalcon!!!
0
|
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
|
|
10.01.2014, 13:39 | 8 |
Обращайтесь
2
|
3 / 3 / 2
Регистрация: 29.06.2012
Сообщений: 118
|
|
28.01.2014, 20:49 [ТС] | 9 |
Ещё надо добавить libmysql.lib из папки %mysql%\lib\ в папку c:\windows\.
0
|
28.01.2014, 20:49 | |
28.01.2014, 20:49 | |
Помогаю со студенческими работами здесь
9
Qt 5.4 не знаю как собрать плагин MySQL Как правильно собрать проект? как правильно собрать релиз? MAC и PC - Как правильно собрать!? Как правильно собрать DLL ? API Запрос как правильно собрать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |