Seite 1 von 1
QT und MySQL
Verfasst: 27. September 2005 09:56
von Crazy K
Hi @ all
ich will ein Programm mit mysql-Datenbank und QT schreiben. Bin recht neu in QT..denke aber ich finde mich einigermaßen zurecht.
In der Qt-Referenz steht, dass man das plugin neu kompilieren muss. Dazu soll folgender Befehl verwendet werden:
qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=C:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
und dann make
1. Problem:
Die Include und lib-Dateien liegen bei mir nicht in dem Verzeichnis sondern in:
C:\Programme\MySQL\MySQL Server 4.1\lib\opt
und
C:\Programme\MySQL\MySQL Server 4.1\include
also das ganze mit :
qmake -o Makefile "INCLUDEPATH+=C:\Programme\MySQL\MySQL Server 4.1\include" "LIBS+=C:\Programme\MySQL\MySQL Server 4.1\lib\opt\LIBMYSQL.LIB" mysql.pro
ausgeführt. Macht ja Sinn
dann make
Fehler:
Code: Alles auswählen
mingw32-make -f Makefile.Debug all
mingw32-make[1]: Entering directory `C:/Qt/4.0.1/src/plugins/sqldrivers/mysql'
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runt
ime-pseudo-reloc -shared -Wl,--out-implib,C:\Qt\4.0.1\plugins\sqldrivers\libqsql
mysqld.a -o "..\..\..\..\plugins\sqldrivers\qsqlmysqld.dll" tmp\obj\debug_shared
\main.o tmp\obj\debug_shared\qsql_mysql.o -L"C:\Qt\4.0.1\lib" -L"C:\Qt\4.0.1\li
b" C:\Programme\MySQL\MySQL Server 4.1\lib\opt\libmysql.lib -lQtCored4 -lQtSqld4
g++: C:\Programme\MySQL\MySQL: No such file or directory
g++: Server: No such file or directory
g++: 4.1\lib\opt\libmysql.lib: No such file or directory
mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysqld.dll] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/4.0.1/src/plugins/sqldrivers/mysql'
mingw32-make: *** [debug-all] Error 2
Der kommt irgendwie nicht damit zurecht das im Pfad Punkte und Leerzeichen drin sind.
Weiss jemand Rat
Verfasst: 28. September 2005 17:26
von Christian81
Da ist ein Leerzeichen -> "MySQL Server 4.1""
ds ist nicht so gut, versuche es mal ohne Leerzeichen bzw. mit
"INCLUDEPATH+=\"C:\Programme\MySQL\MySQL Server 4.1\include\"". oder "INCLUDEPATH+='C:\Programme\MySQL\MySQL Server 4.1\include'"
Leerzeichen in Pfaden sind generell keine gute Idee.
Das geht bei mingw nen bischen anders.
Verfasst: 1. Oktober 2005 13:30
von linse
Die lib dateien von mysql wurden mit nen MS compiler übersetzt,
desegen erst
cd c:\mysql\lib\opt
reimp -d libmysql.lib
#(reimp ist bei den MinGW utilities dabei)
dlltool --input-def ibmysql.def --dllname libmysql.dll --output-lib
ibmysql.a
dann hat man eine ming kompatible ibmysql.a library und kann das qt plugin übersetzen.
cd c:\qt\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=-LC:\MYSQL\LIB\OPT -lmysql" mysql.pro
make
mfg Linse
mysql plugin
Verfasst: 25. Januar 2006 08:35
von noirabys
Hallo zusammen
ich versuche nun schon seit einigen Tagen das mysql plugin unter windows nt ans rennen(compilieren) zu bekommen , bisher allerdings ohne Erfolg .
configure --plugin-sql-mysql hat nichts gebracht.
dann habe ich versucht das plugin selbst zu erstellen ...
qmake -o Makefile "INCLUDEPATH+=h:\MYSQL\INCLUDE" "LIBS+=h:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
nmake
dann konnte er aber mit mysql.lib nichts anfangen ...
Nun habe ich langsam die Nase voll .
wäre es möglich das mir jemand das plugin mailt ?!
Vielen Dank und Gruß
noirabys
mysql-plugin die genau Fehlermeldung:
Verfasst: 25. Januar 2006 08:52
von noirabys
D:\qt\src\plugins\sqldrivers\mysql>qmake -o Makefile "INCLUDEPATH+=H:\MYSQL\INCLUDE" "LIBS+=H:\MYSQL\LIB\OPT\LIBMYSQL.LIB" mysql.pro
D:\qt\src\plugins\sqldrivers\mysql>nmake
Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.
NMAKE -f Makefile.Debug all
Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -shared -Wl,--out-implib,D:\qt\plugins\sqldr
\..\..\plugins\sqldrivers\qsqlmysqld.dll" tmp\obj\debug_shared\main.o tmp\obj\debug_shared\qsql_mysql.o -L"D:\qt\lib" -L"D:\qt\lib" H:\MYSQL\LIB\OP
Cored4 -lQtSqld4
d:\qt\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lmysql.lib
collect2: ld returned 1 exit status
NMAKE : fatal error U1077: 'g++' : Rueckgabe-Code '0x1'
Stop.
NMAKE : fatal error U1077: '"C:\Programme\Microsoft Visual Studio\VC98\bin\NMAKE.EXE"' : Rueckgabe-Code '0x2'
Stop.
D:\qt\src\plugins\sqldrivers\mysql>dir H:\MYSQL\LIB\OPT\LIBMYSQL.LIB
Datenträger in Laufwerk H: ist WORK
Datenträgernummer: C0A8-290C
Verzeichnis von H:\MYSQL\LIB\OPT
28.12.05 20:22 34.900 libmysql.lib
1 Datei(en) 34.900 Bytes
9.208.705.024 Bytes frei
D:\qt\src\plugins\sqldrivers\mysql>
Verfasst: 25. Januar 2006 08:56
von Christian81
Die MySQL-Header ins Standard-Include Verzeichnis kopieren (wohl Programme\Microsoft Visual Studio XXX\vcX\include, bei MinGW ähnlich), die Libs ins Standard-Lib Verzeichnis (das gleiche mit \lib) und fertig.
-lmysql.lib
Verfasst: 26. Januar 2006 07:08
von noirabys
Hallo !
danke für die Hilfe allerdings hilft das nicht:
die libmysql.lib liegt definitiv im angegeben Pfad wird allerdings
nicht als solche erkannt ...
wahrscheinlich wegen der seltsamen Endung ?!
D:\qt\src\plugins\sqldrivers\mysql>nmake -f Makefile.Release all
Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten.
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_EDITION=QT_EDITION_DESKTOP -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_NO_DEB
UG -DQT_PLUGIN -DQT_CORE_LIB -DQT_SQL_LIB -DQT_THREAD_SUPPORT -I"D:/qt/include/QtSql" -I"D:/qt/include/QtCore" -I"D:/qt/include" -I"D:/qt/include/ActiveQt" -I"tmp\moc\release_share
d" -I"." -I"D:/qt/mkspecs/win32-g++" -o tmp\obj\release_shared\main.o main.cpp
g++ -c -O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_EDITION=QT_EDITION_DESKTOP -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_NO_DEB
UG -DQT_PLUGIN -DQT_CORE_LIB -DQT_SQL_LIB -DQT_THREAD_SUPPORT -I"D:/qt/include/QtSql" -I"D:/qt/include/QtCore" -I"D:/qt/include" -I"D:/qt/include/ActiveQt" -I"tmp\moc\release_share
d" -I"." -I"D:/qt/mkspecs/win32-g++" -o tmp\obj\release_shared\qsql_mysql.o ..\..\..\sql\drivers\mysql\qsql_mysql.cpp
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -Wl,-s -shared -Wl,--out-implib,D:\qt\plugins\sqldrivers\libqsqlmysq
l.a -o "..\..\..\..\plugins\sqldrivers\qsqlmysql.dll" tmp\obj\release_shared\main.o tmp\obj\release_shared\qsql_mysql.o -L"D:\qt\lib" -L"D:\qt\lib" -lmysql.lib -lQtCore4 -lQtSql
4
d:\qt\MinGW\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lmysql.lib
collect2: ld returned 1 exit status
NMAKE : fatal error U1077: 'g++' : Rueckgabe-Code '0x1'
Stop.
D:\qt\src\plugins\sqldrivers\mysql>
D:\qt\src\plugins\sqldrivers\mysql>