QT und MySQL

Verschiedenes zu Qt
Antworten
Crazy K
Beiträge: 1
Registriert: 26. September 2005 22:06

QT und MySQL

Beitrag 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
juhuu..es compiliert..wir können es rausschicken
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
linse
Beiträge: 11
Registriert: 27. September 2005 14:09
Wohnort: Berlin
Kontaktdaten:

Das geht bei mingw nen bischen anders.

Beitrag 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
perl -e'&{sub{s~~shift~e;s-(&*{*{*#*L*.Z*.E*.)-chr$&-eg;print}}(100105114107)'
noirabys
Beiträge: 16
Registriert: 25. Januar 2006 07:33
Wohnort: Aachen
Kontaktdaten:

mysql plugin

Beitrag 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
noirabys
Beiträge: 16
Registriert: 25. Januar 2006 07:33
Wohnort: Aachen
Kontaktdaten:

mysql-plugin die genau Fehlermeldung:

Beitrag 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>
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
noirabys
Beiträge: 16
Registriert: 25. Januar 2006 07:33
Wohnort: Aachen
Kontaktdaten:

-lmysql.lib

Beitrag 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>
Antworten