Seite 1 von 1

qtmysql win32 kompilieren

Verfasst: 15. Juni 2007 09:48
von pfusterschmied
Hallo,

sitze vor dem Problem ein Programm, welches unter Linux geschrieben wurde in WinDoof zum laufen zu bringen. Unter Linux klappt alles. Unter Windows erhalte ich die fehlermeldung "Driver not loaded"

Ich habe das Forum durchsucht und festgestellt das mir die qtmysql.dll unter windoof fehlt. Habe nach http://wiki.qtcentre.org/index.php?titl ... sing_MinGW eine Plugin des Drivers erstellen wollen jedoch beide Anleitungen schlugen fehl.

configure -qt-sql-mysql -qt-sql-odbc -qt-sql-sqlite bzw. configure -plugin-sql-mysql funktionieren, jedoch fehlt im Pluginordner die qtmysql.dll

Wenn ich unter qtverzeichnis/src/plugin/mysql make ausführe um qtmysql.dll zu erstellen erhalte ich eine Fehlermeldung vom compiler (MinGW).

Ich habe bereits QT neu installiert und (DebugLib nicht kompiliert).


Nun meine Frage: Wo bekomme ich die qtmysql.dll her wenn ich sie nicht selbst erstellen kann.

Noch eine blöde Frage: Würde es funktionieren, wenn mir jemand seine qtmysql.dll zu Verfügung stellt?
(Mysql 5, QT 4.2.2)

Verfasst: 15. Juni 2007 10:42
von patrik08
Mit dem mingw compiler zuerst die dll reformatieren... da mit VS gebuildet ist...


cd C:\MySQL\lib
reimp -d libmysql.lib
dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib C:\MinGW\lib\libmysql.a

dann alle mysql include file nach C:\MinGW\include kopieren..

dann kannst du es builden ... wichtig ist dass die dll un alles im PATH envoirment ist...

zum lesen http://wiki.qtcentre.org/index.php?titl ... sing_MinGW

dass mysql plugin kannst du auch statisch builden ... wen qt -static im configure hat...

http://wiki.qtcentre.org/index.php?titl ... UGIN_build

Verfasst: 15. Juni 2007 11:03
von pfusterschmied
Danke, aber dass habe ich alles schon gemacht.

Wenn ich make durchführe läuft anfangs alles normal und dann, schreit der Compiler :"undifined reference to ... ". Scheint ein linker Problem zu sein.


Den Hinweis mit der Umgebungsvariable ist vielleicht von Nutzen.
Bei mir ist PATH = C:\MinGW\bin
Welche Dateien sollten da alle dirnnen sein?

Dumme Frage, aber:
Würde es nicht auch funktionieren, wenn mir jemand die qtmysql.dll einfach gibt?

Verfasst: 15. Juni 2007 11:33
von pfusterschmied
Wer lesen kann, ist klar im Vorteil:
The instructions found in Assistant and on doc.trolltech.com does not work when you use the open source version of Qt on Windows with MinGW.
Was kann ich denn nun machen, wenn die OS Version verwende?

Verfasst: 15. Juni 2007 11:51
von patrik08
pfusterschmied hat geschrieben: Bei mir ist PATH = C:\MinGW\bin
Welche Dateien sollten da alle dirnnen sein?
?
msys.bat [enter] das ist das minimal system auf window wie linux shell

http://www.mingw.org/msys.shtml
gute info auch bei http://www.complex-computer.de/albumsha ... on_Windows




cd /C/MinGW/inlude
ls mysql*

mysql.h
mysql_com.h
mysql_embed.h
mysql_time.h
mysql_version.h
mysqld_error.h

cd /C/MinGW/lib
ls libmysql*
libmysql.a

mehr braucht es nicht....

Verfasst: 15. Juni 2007 12:01
von patrik08
pfusterschmied hat geschrieben:Wer lesen kann, ist klar im Vorteil:
The instructions found in Assistant and on doc.trolltech.com does not work when you use the open source version of Qt on Windows with MinGW.
Was kann ich denn nun machen, wenn die OS Version verwende?
Dass funktioniert immer seit QT4.1 und QT4.3.beta ..... MINGW && QT4

http://wiki.qtcentre.org/index.php?titl ... sing_MinGW

Wenn es nicht geht dann fehlt eben mysql binary dev source dll. oder dlltool.exe reimp.exe oder eben http://prdownloads.sourceforge.net/ming ... e?download

Oder hast du dass gefuel ich habe den screenshoot auf http://www.qtforum.de/forum/viewtopic.php?t=4078 selber gemahlen?

Verfasst: 15. Juni 2007 12:04
von pfusterschmied
Im Verzeichnis C:\MinGW\bin ist keine msys.bat

Sonst sind alle Dateien vorhanden.

Ich habe QT 4.3 heruntergeladen und den MinGW automatische bei der Installation installieren lassen. Fehlen da jetzt noch einige Dateien oder liegt der Hund woanders begraben:
The instructions found in Assistant and on doc.trolltech.com does not work when you use the open source version of Qt on Windows with MinGW.
Auf alle Fälle lässt sich die qtmysql nicht erstellen.
Wenn ich make im verzeichnis: C:\Qt\4.3.0\src\plugins\sqldrivers\mysql aufrufe, erhalte ich massenhaft Fehlermeldungen:

Code: Alles auswählen

tmp\obj\release_shared\moc_qsql_mysql.o(.rdata$_ZTV12QMYSQLDriver[vtable for QMY
SQLDriver]+0x58):moc_qsql_mysql.cpp: undefined reference to `QSqlDriver::escapeI
dentifier(QString const&, QSqlDriver::IdentifierType) const'
tmp\obj\release_shared\moc_qsql_mysql.o(.rdata$_ZTV12QMYSQLDriver[vtable for QMY
SQLDriver]+0x5c):moc_qsql_mysql.cpp: undefined reference to `QSqlDriver::sqlStat
ement(QSqlDriver::StatementType, QString const&, QSqlRecord const&, bool) const'

Verfasst: 15. Juni 2007 12:14
von pfusterschmied
HA, HA,

Mir ist schon klar, dass es irgendwie geht.

reimp, dlltool habe ich.
MSYS nicht! Installiere ich gleich.

Was meinst du genau mit mysql binary dev source dll?

Verfasst: 15. Juni 2007 12:35
von patrik08
pfusterschmied hat geschrieben:HA, HA,

Mir ist schon klar, dass es irgendwie geht.

reimp, dlltool habe ich.
MSYS nicht! Installiere ich gleich.

Was meinst du genau mit mysql binary dev source dll?
von wo nimmst du die mysql / include und die libmysql.dll ??

Letzte woche habe ich das mysql plugin fuer 2 prozessoren typen gebuildet... MAC ppc & intel

http://wiki.qtcentre.org/index.php?titl ... n_Mac_OS_X
---> Build Mysql QT plugin auf MAC ppc && intel ... ist nicht viel anders... als window 32 wenn man den mysql server selber buildet... --disable-shared da man keine mysql libs findet fertig die static sind.

Jedoch shared mysql bin/exe installer ist die window server auf http://dev.mysql.com/downloads/ gut genug....

Verfasst: 15. Juni 2007 12:50
von pfusterschmied
Ich habe bereits 2 verschiedene versucht.

Einaml mit der Installer Version von mysql.com (setup.msi) Bei der Installation wird man gefragt ob man Header Files und Developer Fles installieren möchte -> habe ich natürlich mit ja bestätigt. Dann habe ich 2 ordner (include und lib) im mysql Verzeichnis. Diese Dateien habe ich genommen.

2 Versuche:
noinstaller Version von mysql.com (zip Datei) entpackt und include bzw. lib Verzeichnis genommen.

Ich versuche es mal mit der Version die du angegeben hast.


Jedoch glaube ich, dass ich ein Problem mit der Installierten Version von QT habe.

Wenn ich alles nach Anleitung mache mit configure .....
Kommt die Aufforderung mit dem Befehl: mingw32-make alles zu compilieren. Wenn ich dies mache bekomme ich ebenfalls Fehlermeldungen ("undifined reference to ... ")

Verfasst: 15. Juni 2007 13:18
von Christian81
Ich würde einfach mal configure.exe mit '-plugin-sql-mysql' aufrufen und ausserdem mit -I und -L die Pfade(!) zu den Includes / Libs angeben. Danach kompilieren und schauen obs geht.

Verfasst: 15. Juni 2007 13:57
von patrik08
pfusterschmied hat geschrieben:Ich habe bereits 2 verschiedene versucht.

Einaml mit der Installer Version von mysql.com (setup.msi) Bei der Installation wird man gefragt ob man Header Files und Developer Fles installieren möchte -> habe ich natürlich mit ja bestätigt. Dann habe ich 2 ordner (include und lib) im mysql Verzeichnis. Diese Dateien habe ich genommen.
Die dateien musst du an der stelle lassen vo der installer sie macht....

in diese stelle

cmd cd c / mysql / lib

reimp -d libmysql.lib

dlltool -k --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a

dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib c:\MinGW\lib\libmysql.a

siehe den Inhalt von... nur was mysql anbelangt....

static und shared qmysql....

http://ppk.ciz.ch/qt_c++/mysql_model_br ... GW.tar.bz2 3MB ca.

Verfasst: 17. Juni 2007 08:05
von pfusterschmied
Danke, werde heute alles noch mal neu installieren und alles durchprobieren, vielleicht klapp es ja heute. Leider kann ich deinen Anhang nicht öffnen (Archiv beschädigt) vielleicht kannst es nochmal online stellen...

gelöst

Verfasst: 17. Juni 2007 19:16
von pfusterschmied
Habs nun endlich hinbekommen.

Hab auf einen Zweitrechner ganz normal QT,Mysql installiert. Anschließend die Anweisungen auf QTcenter/wiki durchgeführt.

Hat auf Anhieb geklappt. Auf meinem Laptop geht es nach 3-maliger Installation von QT, MySQL und MinGW noch immer nicht, keine Ahnung was da schief läuft.

An alle, trotzdem Danke!