Russian Qt Forum
Сентябрь 30, 2024, 20:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как установить MySQL драйвер  (Прочитано 9054 раз)
demiurg
Гость
« : Апрель 28, 2011, 22:33 »

Помогите плжлст разобраться как установить Mysql драйвера под Qt .MS Visual Studio в глаза не видел. Немного по другой отрасли программированияя специализируюсь ближе к железу, ASM итд Тут просто припёрло под MySQL кое чё написать.   Перечитал огромную кучу форумов, но так и не въехал.

Утсновил Qt SDK qt-sdk-win-opensource-2009.04 (Qtcreator) и MySQL Server 5.5  зашёл в Qt command prompt

ввёл

cd %QTDIR%\src\plugins\sqldrivers\mysql   \\ну соответсвенно ввёд свою директорию
qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MYSQL\MySQL Server <version>\lib\opt\libmysql.lib" mysql.pro

получил на выходе в папке %QTDIR%\src\plugins\sqldrivers\mysql   следующие файлы:
Makefile
Makefile.Debug
Makefile.Release
qsqlmysql_resource
qsqlmysqld_resource

А что делать дальше?Как их скомпилить?  на make и nmake ругацца что непонимает.

Может есть пошаговая инструкция по этому делу. Куда чё копирнуть, где удалить.





« Последнее редактирование: Апрель 28, 2011, 22:36 от demiurg » Записан
SeverusSnape
Гость
« Ответ #1 : Апрель 28, 2011, 23:11 »

Сегодня только наткнулся на топик -
http://k0n0n3nk0.wordpress.com/2010/01/20/

Там есть пост про сборку драйвера MySQL Qt4 в вин
Записан
demiurg
Гость
« Ответ #2 : Апрель 28, 2011, 23:46 »

Ввёл в командной строке Qt

cd C:\MySQL\include
 dlltool –input-def libmysql.def –dllname libmysql.dll –output-lib libmysql.a -k

 выдало   dlltool:invalid option --i

Да и файлов у меня в C:\MySQL\include таких нет   libmysql.def libmysql.dll  libmysql.a  - может вся загвоздка в этом?

А нет уже собраного Qt c уже установлеными дравами?
Записан
SeverusSnape
Гость
« Ответ #3 : Апрель 29, 2011, 00:27 »

Ввёл в командной строке Qt

cd C:\MySQL\include
 dlltool –input-def libmysql.def –dllname libmysql.dll –output-lib libmysql.a -k

 выдало   dlltool:invalid option --i

Да и файлов у меня в C:\MySQL\include таких нет   libmysql.def libmysql.dll  libmysql.a  - может вся загвоздка в этом?

А нет уже собраного Qt c уже установлеными дравами?

У вас должен быть только libmysql.def, остальные будут собраны в процессе
Записан
demiurg
Гость
« Ответ #4 : Апрель 29, 2011, 01:12 »

Код:

C:\MySQL\include>dlltool --input-def libmysql.def --dllname libmysql.dll --outpu
t-lib libmysql.a -k
VERSION 6.0

C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>qmake -o Makefile "INCLUDEPATH+=C:
\MySQL\include""LIBS+=C:\MySQL\lib\opt\libmysql.lib" mysql.pro

C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>mingw32-make
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Qt/2009.04/qt/src/plugins/sqldrivers/mys
ql'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -
DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -
DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\i
nclude\QtSql" -I"..\..\..\..\include" -I"c:\MySQL\includeLIBS+=C:\MySQL\lib\opt\
libmysql.lib mysql.pro" -I"..\..\..\..\include\ActiveQt" -I"debug" -I"..\..\..\.
.\mkspecs\win32-g++" -o debug\main.o main.cpp
In file included from main.cpp:44:
../../../sql/drivers/mysql/qsql_mysql.h:52:19: mysql.h: No such file or directory
In file included from main.cpp:44:
../../../sql/drivers/mysql/qsql_mysql.h:107: error: expected `)' before '*' token
mingw32-make[1]: *** [debug/main.o] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/2009.04/qt/src/plugins/sqldrivers/mysql'
mingw32-make: *** [debug] Error 2

Вообщем выдаёт ошибку, загуглил ничо толком не нашёл. Может  с Qt чегото не то?
Записан
demiurg
Гость
« Ответ #5 : Апрель 29, 2011, 20:40 »

Вьехал в ошибку, нигде непрописаны пути.

Код:
C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>mingw32-make
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Qt/2009.04/qt/src/plugins/sqldrivers/mys
ql'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -
DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -
DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\i
nclude\QtSql" -I"..\..\..\..\include" -I"c:\MySQL\includeLIBS+=C:\MySQL\lib\opt\
libmysql.a" -I"mysql.pro" -I"..\..\..\..\include\ActiveQt" -I"debug" -I"..\..\..
\..\mkspecs\win32-g++" -o debug\main.o main.cpp
cc1plus.exe: mysql.pro: not a directory
mingw32-make[1]: *** [debug/main.o] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/2009.04/qt/src/plugins/sqldrivers/mysq
l'
mingw32-make: *** [debug] Error 2

А как найти где их прописать . В файлах sql везде прописал и убрал ..\..\..\..\  а как остальное прописать?
Записан
SeverusSnape
Гость
« Ответ #6 : Апрель 29, 2011, 21:12 »

Может быть в системную переменную PATH?
Записан
demiurg
Гость
« Ответ #7 : Апрель 29, 2011, 21:27 »

А как это сделать можете поконкретнее разъяснить? Непонятно вообще что это за ошибка вылазит cc1plus.exe: mysql.pro: not a directory  ?
Записан
demiurg
Гость
« Ответ #8 : Апрель 29, 2011, 22:28 »

нашёл ток чото не добавляется, в PATH  появилось а ничо не изменилось

Код:
C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>path
PATH=C:\Qt\2009.04\qt\bin;C:\Qt\2009.04\bin;C:\Qt\2009.04\mingw\bin;C:\WINDOWS\System32

C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>path=%PATH%;C:\Qt\2009.04\qt\include\QtCore

C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>path
PATH=C:\Qt\2009.04\qt\bin;C:\Qt\2009.04\bin;C:\Qt\2009.04\mingw\bin;C:\WINDOWS\System32;C:\Qt\2009.04\qt\include\QtCore

C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>path=%PATH%;C:\Qt\2009.04\qt\include\QtSql

C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>path=%PATH%;C:\Qt\2009.04\qt\include

C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>path=%PATH%;C:\Qt\2009.04\qt\include\ActiveQt

C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>path=%PATH%;C:\Qt\2009.04\qt\mkspecs\win32-g++

C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>mingw32-make
mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/Qt/2009.04/qt/src/plugins/sqldrivers/mysql'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT
_SQL_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtSql" -I"..\..\..\..\include" -I"c:\MySQL\includeLIB
S+=C:\MySQL\lib\opt\libmysql.a" -I"mysql.pro" -I"..\..\..\..\include\ActiveQt" -I"debug" -I"..\..\..\..\mkspecs\win32-g++" -o debug\main.o main.cpp
cc1plus.exe: mysql.pro: not a directory
mingw32-make[1]: *** [debug/main.o] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/2009.04/qt/src/plugins/sqldrivers/mysql'
mingw32-make: *** [debug] Error 2

C:\Qt\2009.04\qt\src\plugins\sqldrivers\mysql>path
PATH=C:\Qt\2009.04\qt\bin;C:\Qt\2009.04\bin;C:\Qt\2009.04\mingw\bin;C:\WINDOWS\System32;C:\Qt\2009.04\qt\include\QtCore;C:\Qt\2009.04\qt\include\QtSql
;C:\Qt\2009.04\qt\include;C:\Qt\2009.04\qt\include\ActiveQt;C:\Qt\2009.04\qt\mkspecs\win32-g++
Записан
SeverusSnape
Гость
« Ответ #9 : Апрель 30, 2011, 00:14 »

Цитировать
cd %QTDIR%\src\plugins\sqldrivers\mysql
qmake "INCLUDEPATH+=F:\MySQL\include" "LIBS+=F:\MYSQL\libmysql.lib" mysql.pro
nmake

libmysql.lib в F:\MySQL положил и в %QTDIR%\src\plugins\sqldrivers\mysql...

Очень странно что ни у кого не было таких проблем при компиляции в VS2008 и Windows 7...

Стати тут можно проверить сразу работоспособность... в выпадающем списке
%QTDIR%\demos\sqlbrowser\release\sqlbrowser.exe
Записан
demiurg
Гость
« Ответ #10 : Апрель 30, 2011, 02:40 »

чот скомпилилось но вроде не всё.
libqsqlmysqld4.a
moc_qsql_mysql
main.o
moc_qsql_mysql.o
qsql_mysql.moc
qsql_mysql.o
qsqlmysqld4.dll
qsqlmysqld_resource_res.o

Бросил их и в Qt/plugins/sqldrivers/ , libmysql.dll в вапку Qt/bin . PATH очищал, но в factory cashe они не появились.  Там ещё вроде два файла вроде должны были скомпилится?
Записан
SeverusSnape
Гость
« Ответ #11 : Апрель 30, 2011, 10:02 »

нет, все норм
Записан
demiurg
Гость
« Ответ #12 : Апрель 30, 2011, 21:48 »

Кабздец, где можно достать готовые драйверы. Не работают эти уже всунул во все щели их  . Пытался перекомпилить , но опять выдаёт
In file included from main.cpp:44:
../../../sql/drivers/mysql/qsql_mysql.h:52:19: mysql.h: No such file or directory  

Где находится это mysql.h  и чо ему нехватает.

Погуглил тут, может это в ОС дело (W-SP3)?

Вот получилось НО..

получаю на выходе
libqsqlmysqld4.a
main.o
moc_qsql_mysql.cpp
moc_qsql_mysql.o
qsql_mysql.moc
qsql_mysql.o
qsqlmysqld4.dll
qsqlmysqld_resource_res.o
-закидываю эти файлы в C:\Qt\2009.04\qt\plugins\sqldrivers
-libmysql.dll кидаю в файл debug\release
-нуль эффекта
удалял
HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.5.debug
 HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.5.false

Но в  HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.5.debug плагины не появляются

ЭТО ГДЕ, в скомпилированных дровах или чтото недоделал?



« Последнее редактирование: Апрель 30, 2011, 23:00 от demiurg » Записан
andybeg
Гость
« Ответ #13 : Июнь 05, 2011, 23:37 »

мне частично помог следующий топик
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.054 секунд. Запросов: 21.