Seite 1 von 1

MinGW und MySql

Verfasst: 27. März 2006 23:42
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

Verfasst: 28. März 2006 15:23
von patrik08
suche ming +mysql im forum ... oder...
http://qtforum.de/forum/viewtopic.php?t=1655

Verfasst: 29. März 2006 22:54
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

Verfasst: 3. April 2006 18:48
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

Verfasst: 8. April 2006 13:47
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...