ich wollte heute, bzw gestern das sql-modul von Qt ausprobieren, und hab dazu mal gegoogelt was man machen muss.
Anleitung war schnell gefunden, aber irgentwie wird es nicht erkannt.
Also ich habe den mysqlserver von xampp genutzt.
dann folgende befehle:
D:\QTSDK\4.7.4>cd src/plugins/sqldrivers/mysql
D:\QTSDK\4.7.4\src\plugins\sqldrivers\mysql>qmake -o Makefile "INCLUDEPATH+=D:/xampp/mysql/include" "LIBS+=D:/xampp/mysql/lib/opt/libmysql.lib" mysql.pro
D:\QTSDK\4.7.4\src\plugins\sqldrivers\mysql>make
Ausgabe:
Nach dem erfolgreichen erstellen der Bibliothek (Debug) hab ich die Dateien libqsqlmysqld4.a und qsqlmysqld4.dll in den Pluginordner kopiert (herausgefunden mit QCoreApplication::libraryPaths ) unter sqldrivers/, aber wenn ich jetzt mit dem QtCreator die Treiber liste, kommt QMYSQL nicht.mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/QTSDK/4.7.4/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_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_H
AVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\inclu
de\QtSql" -I"..\..\..\..\include" -I"d:\xampp\mysql\include" -I"..\..\..\..\incl
ude\ActiveQt" -I"debug" -I"..\..\..\..\mkspecs\win32-g++" -o debug\main.o main.c
pp
D:\QTSDK\4.7.4\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCI
I -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_H
AVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREA
D_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtSql" -I"..\..\
..\..\include" -I"d:\xampp\mysql\include" -I"..\..\..\..\include\ActiveQt" -I"de
bug" -I"..\..\..\..\mkspecs\win32-g++" -D__GNUC__ -DWIN32 ..\..\..\sql\drivers\m
ysql\qsql_mysql.cpp -o debug\qsql_mysql.moc
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_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_H
AVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\inclu
de\QtSql" -I"..\..\..\..\include" -I"d:\xampp\mysql\include" -I"..\..\..\..\incl
ude\ActiveQt" -I"debug" -I"..\..\..\..\mkspecs\win32-g++" -o debug\qsql_mysql.o
..\..\..\sql\drivers\mysql\qsql_mysql.cpp
D:\QTSDK\4.7.4\bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCI
I -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_H
AVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREA
D_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtSql" -I"..\..\
..\..\include" -I"d:\xampp\mysql\include" -I"..\..\..\..\include\ActiveQt" -I"de
bug" -I"..\..\..\..\mkspecs\win32-g++" -D__GNUC__ -DWIN32 ..\..\..\sql\drivers\m
ysql\qsql_mysql.h -o debug\moc_qsql_mysql.cpp
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_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_H
AVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\inclu
de\QtSql" -I"..\..\..\..\include" -I"d:\xampp\mysql\include" -I"..\..\..\..\incl
ude\ActiveQt" -I"debug" -I"..\..\..\..\mkspecs\win32-g++" -o debug\moc_qsql_mysq
l.o debug\moc_qsql_mysql.cpp
windres -i qsqlmysqld_resource.rc -o debug\qsqlmysqld_resource_res.o --include-d
ir=. -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_AS
CII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNO
W -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT
g++ -mthreads -shared -Wl,--out-implib,debug\libqsqlmysqld4.a -o debug\qsqlmysql
d4.dll debug/main.o debug/qsql_mysql.o debug/moc_qsql_mysql.o -L"d:\QTSDK\4.7.4
\lib" debug\qsqlmysqld_resource_res.o D:/xampp/mysql/lib/opt/libmysql.lib -lQtSq
ld4 -lQtCored4
Creating library file: debug\libqsqlmysqld4.a
mingw32-make[1]: Leaving directory `D:/QTSDK/4.7.4/src/plugins/sqldrivers/mysql'
folgender code liefert folgende ausgabe:
Code: Alles auswählen
#include <QCoreApplication>
#include <QtSql>
int main(int argc, char ** argv){
QCoreApplication app( argc, argv );
qDebug() << QSqlDatabase::drivers();
QSqlDatabase db( QSqlDatabase::addDatabase( "QMYSQL" ) );
qDebug() << db.lastError();
}
Meine .pro datei:Starte D:\QtProjects\PluginManager-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug\debug\PluginManager.exe...
("QSQLITE", "QODBC3", "QODBC")
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC
QSqlError(-1, "Driver not loaded", "Driver not loaded")
D:\QtProjects\PluginManager-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Debug\debug\PluginManager.exe beendet, Rückgabewert 0
Code: Alles auswählen
SOURCES += \
main.cpp
QT += sql
Habe ich in der .pro was vergessen?
Im Quellcode?
Hat es was mit zu tun das ich Xampp "missbraucht" habe?
Habe ich einstellungen vergessen in der qt bibliothek?
Ich hoffe ihr könnt mir helfen und bedanke mich im Vorraus.
lg
David