MinGW und MySql

Alles rund um die Programmierung mit Qt
Antworten
Marco812
Beiträge: 139
Registriert: 22. November 2005 11:28

MinGW und MySql

Beitrag von Marco812 »

Hallo,

ich wollte QT configurieren: configure -qt-sql-mysql -I C:\mysql\include -L C:\mysql\lib\opt -l mysqlclient -qt-sql-sqlite -release
und erhalte fogende Fehlermeldung:

g++: global\qt_pch.h: linker input file unused because linking not done
g++ -c -include tmp\obj\release_shared\qt_pch.h -O2 -O2 -Wall -frtti -fexception
s -DQT_SHARED -DQT_THREAD_SUPPORT -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_EDITION=
QT_EDITION_DESKTOP -DQT_BUILD_CORE_LIB -DQT_MAKEDLL -DQT3_SUPPORT -DQT_MOC_COMPA
T -DQT_DLL -DQT_NO_DEBUG -I"C:/QT/include" -I"C:/mysql/include" -I"C:/QT/include
/QtCore" -I"tmp" -I"C:/QT/src/corelib/global" -I"..\3rdparty\zlib" -I"C:/QT/incl
ude/ActiveQt" -I"tmp\moc\release_shared" -I"." -I"C:/QT/mkspecs/win32-g++" -o tm
p\obj\release_shared\qglobal.o global\qglobal.cpp
global/qglobal.cpp: tmp\obj\release_shared\qt_pch.h: No such file or directory
mingw32-make[3]: *** [tmp\obj\release_shared\qglobal.o] Error 1
mingw32-make[3]: Leaving directory `C:/QT/src/corelib'
mingw32-make[2]: *** [release] Error 2
mingw32-make[2]: Leaving directory `C:/QT/src/corelib'
mingw32-make[1]: *** [sub-corelib-make_default-ordered] Error 2
mingw32-make[1]: Leaving directory `C:/QT/src'
mingw32-make: *** [sub-src-make_default-ordered] Error 2

Wie kann ich den Fehler beheben?

Gruß

Marco812
Zuletzt geändert von Marco812 am 3. April 2006 18:48, insgesamt 1-mal geändert.
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

suche ming +mysql im forum ... oder...
http://qtforum.de/forum/viewtopic.php?t=1655
Marco812
Beiträge: 139
Registriert: 22. November 2005 11:28

Beitrag von Marco812 »

Hallo,

so habe ich jetzt die qsqlmysql.dll erstellt:

cd c:\mysql\lib\opt
reimp -d libmysql.lib
dlltool --input-def ibmysql.def --dllname libmysql.dll --output-lib libmysql.a

cd c:\qt\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=C:\MYSQL\INCLUDE" "LIBS+=-LC:\MYSQL\LIB\OPT -lmysql" mysql.pro

mingw32-make

und so wollte ich QT konfigurieren:

cd c:\qt
configure -qt-sql-mysql -I c:\mysql\include -L c:\mysql\lib\opt -l mysqlclient -qt-sql-sqlite –release –fast

mingw32-make


Leider bricht er mit folgendem Fehler ab:

C:\mysql\lib\opt\mysqlclient.lib(./release/ctype-ucs2.obj)(.text[_my_strtoll10_u
cs2]+0x268):\build\mysql-5.0.1: undefined reference to `_allmul'
fu000001.o(.idata$3+0xc): undefined reference to `libmsvcrt_a_iname'
fu000004.o(.idata$3+0xc): undefined reference to `libmsvcrt_a_iname'
fu000006.o(.idata$3+0xc): undefined reference to `libmsvcrt_a_iname'
fu000008.o(.idata$3+0xc): undefined reference to `libmsvcrt_a_iname'
fu000010.o(.idata$3+0xc): undefined reference to `libmsvcrt_a_iname'
fu000012.o(.idata$3+0xc): more undefined references to `libmsvcrt_a_iname' follo
w
nmth000000.o(.idata$4+0x0): undefined reference to `_nm___iob'
collect2: ld returned 1 exit status
mingw32-make[6]: *** [..\..\lib\QtSql4.dll] Error 1
mingw32-make[6]: Leaving directory `C:/QT/src/sql'
mingw32-make[5]: *** [release] Error 2
mingw32-make[5]: Leaving directory `C:/QT/src/sql'
mingw32-make[4]: *** [all] Error 2
mingw32-make[4]: Leaving directory `C:/QT/src/sql'
mingw32-make[3]: *** [sub-sql-make_default-ordered] Error 2
mingw32-make[3]: Leaving directory `C:/QT/src'
mingw32-make[2]: *** [all] Error 2
mingw32-make[2]: Leaving directory `C:/QT/src'
mingw32-make[1]: *** [sub-src-make_default-ordered] Error 2
mingw32-make[1]: Leaving directory `C:/QT'
mingw32-make: *** [all] Error 2

Kann mir jemand sagen wie ich den Fehler beheben kann?

Gruß

Marco812
Marco812
Beiträge: 139
Registriert: 22. November 2005 11:28

Beitrag von Marco812 »

Hallo,

ich konnte den MySql-Treiber jetzt so erstellen:

cd c:\mysql\lib\opt
reimp -d libmysql.lib
dlltool -k --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a

cd %QTDIR%\src\plugins\sqldrivers\mysql\
qmake -o Makefile "INCLUDEPATH+=C:\mysql\include" "LIBS+=-LC:\mysql\lib\opt -lmysql"

mingw32-make

configure -I C:\mysql\include -L C:\mysql\lib\opt -l mysql -qt-sql-mysql -qt-sql-sqlite -release -fast

Warum muss ich jetzt aber die "libmysql.dll" im Programmverzeichnis haben und nicht im Ordner "sqldrivers" wie z.B. die "qsqlite.dll"? Wie kann ich QT dazu bewegen den MySql-Treiber im Ordner "sqldrivers" zu erkennen?

Gruß

Marco812
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

die dll kanst du in jedem ordner hinein deponieren ...
aber man muss es an dienen programm mitteilen ....

habe eben das gleiche problem ein beisbiel gegeben ...

lade einfach => http://www.qtforum.de/forum/viewtopic.php?t=1732 <=

ciao...
Antworten