QMySQL Bibliothek
-
Tilman Räger
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
QMySQL Bibliothek
Hallo,
ich versuche gerade die QMYSQL.lib zu übersetzten, habe jedoch das Problem, das er mir ca 50 nicht aufgelöste Funktionen um die Ohren haut. Nachdem ich hier schon gelesen habe, das das ganze Problemlos funktionieren soll, kam mir der Verdacht, das ich irgendwie eine unpassende MySQL-Version auf dem Rechner habe.
Mein System ist folgendes:
Win7 mit Qt 4.8.x (funktioniert weder mit Qt 4.8.1 noch mit 4.8.4) & VS Express 2010
MySQL Server 5.5
sollte da zusammen passen oder benötige ich eine andere MySQL-Version?
Gruss
Tilman Räger
oder muss ich aus der Bibliothek libmysql.lib noch eine andere MySQL-Bibliothek (z.b. mysqlclient.lib) einbinden?
Gruss
Tilman (Räger)
ich versuche gerade die QMYSQL.lib zu übersetzten, habe jedoch das Problem, das er mir ca 50 nicht aufgelöste Funktionen um die Ohren haut. Nachdem ich hier schon gelesen habe, das das ganze Problemlos funktionieren soll, kam mir der Verdacht, das ich irgendwie eine unpassende MySQL-Version auf dem Rechner habe.
Mein System ist folgendes:
Win7 mit Qt 4.8.x (funktioniert weder mit Qt 4.8.1 noch mit 4.8.4) & VS Express 2010
MySQL Server 5.5
sollte da zusammen passen oder benötige ich eine andere MySQL-Version?
Gruss
Tilman Räger
oder muss ich aus der Bibliothek libmysql.lib noch eine andere MySQL-Bibliothek (z.b. mysqlclient.lib) einbinden?
Gruss
Tilman (Räger)
-
Tilman Räger
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
Re: QMySQL Bibliothek
Hallo,
die Entwicklungsdateien sind vorhanden - in genanntem Ordner (es scheint also prinzipiell mit MySQL Server 5.5 zu funktionieren.
Das Problem tritt auch nicht beim Compilieren sondern erst danach beim Linken auf, wobei ca 50 Abhängigkeiten nicht aufgelöst werden.
Ich habe mal einen Teil dieser Fehlermeldungen angehängt - vielleicht erkennt ja jemand daran etwas. Ich habe so einen leisen Verdacht, ob vielleicht die Bibliotheken nicht zu
meinem Compiler (VS Express 2010) passen könnten
Gibt es eigentlich ein vernünftiges Tool (mgl. Freeware) mit dem sich feststellen lässt, welche Funktionen in einer Bibliothek zu finden sind?
Gruss
Tilman (Räger)
die Entwicklungsdateien sind vorhanden - in genanntem Ordner (es scheint also prinzipiell mit MySQL Server 5.5 zu funktionieren.
Das Problem tritt auch nicht beim Compilieren sondern erst danach beim Linken auf, wobei ca 50 Abhängigkeiten nicht aufgelöst werden.
Ich habe mal einen Teil dieser Fehlermeldungen angehängt - vielleicht erkennt ja jemand daran etwas. Ich habe so einen leisen Verdacht, ob vielleicht die Bibliotheken nicht zu
meinem Compiler (VS Express 2010) passen könnten
Code: Alles auswählen
qsql_mysql.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mysql_stmt_attr_set@12" in Funktion ""protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)".
qsql_mysql.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mysql_stmt_bind_result@8" in Funktion ""protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)".
qsql_mysql.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mysql_stmt_affected_rows@4" in Funktion ""protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)".
qsql_mysql.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mysql_stmt_execute@4" in Funktion ""protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)".
qsql_mysql.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mysql_stmt_bind_param@8" in Funktion ""protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)".
qsql_mysql.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mysql_stmt_reset@4" in Funktion ""protected: virtual bool __thiscall QMYSQLResult::exec(void)" (?exec@QMYSQLResult@@MAE_NXZ)".
qsql_mysql.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mysql_character_set_name@4" in Funktion ""class QTextCodec * __cdecl codec(struct st_mysql *)" (?codec@@YAPAVQTextCodec@@PAUst_mysql@@@Z)".
qsql_mysql.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_mysql_thread_init@0"in Funktion ""public: virtual bool __thiscall QMYSQLDriver::open(class QString const &,class QStringconst &,class QString const &,class QString const &,int,class QString const &)" (?open@QMYSQLDriver@@UAE_NABVQString@@000H0@Z)".
Gruss
Tilman (Räger)
-
Tilman Räger
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
Re: QMySQL Bibliothek
Die Bibliothek ist eingebunden - aber irgendwie passt es doch nicht. Werd ich mir also mal den DependencyWalker runterladen - falls er zum Download verfügbar ist. Ich hatte im Hinterkopf, das der beim MS Compiler mitgeliefert wurde, aber bei der Express-Variante scheint er nicht dabei zu sein.
Gruss
Tilman Räger
Noch eine Ergänzung: Ich habe mir den DependencyWalker heruntergeladen - der kann mit der Datei libmysql.lib allerdings nicht anfangen. mag er generell keine .lib-Dateien oder hat die wohl ne Macke?
Tilman (Räger)
Gruss
Tilman Räger
Noch eine Ergänzung: Ich habe mir den DependencyWalker heruntergeladen - der kann mit der Datei libmysql.lib allerdings nicht anfangen. mag er generell keine .lib-Dateien oder hat die wohl ne Macke?
Tilman (Räger)
Re: QMySQL Bibliothek
Nein, der DependencyWalker funktioniert leider nur für dll's. Für lib's gibt es dumpbin, kann Dir aber nicht sagen, ob das beim VS Express dabei ist. Für "echte" libs benutzt man DUMPBIN /SYMBOLS und für import libs DUMPBIN /EXPORTS.
-
Tilman Räger
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
Re: QMySQL Bibliothek
Hallo,
Vielen Dank mal für den Tip mit dem dumpbin. Damit ließ sich die Bibliothek öffnen. Was mir auffiel ist, das der Linker Funktionen mit den typischen C++-Signaturen anmeckert, während dumpbin nur die blanken Funktionsnamen, also C-Signaturen, anzeigt. Ist das normal oder liegt hier eine Inkombatibilität der Bibliothek vor?
Gruß
Tilman (Räger)
Vielen Dank mal für den Tip mit dem dumpbin. Damit ließ sich die Bibliothek öffnen. Was mir auffiel ist, das der Linker Funktionen mit den typischen C++-Signaturen anmeckert, während dumpbin nur die blanken Funktionsnamen, also C-Signaturen, anzeigt. Ist das normal oder liegt hier eine Inkombatibilität der Bibliothek vor?
Gruß
Tilman (Räger)
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: QMySQL Bibliothek
Wenn Du die QMySQL - Bibliothek nach Anleitung baust und aufpasst dass die MySQL-Header und Libraries in einem Pfad ohne Leerzeichen liegt und dies korrekt an qmake übergibst funktioniert es auch. Dumpbin und co helfen dir hier definitiv nicht weiter.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Tilman Räger
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
Re: QMySQL Bibliothek
Hallo,
ch brauche doch das Projekt unter <QTDIR>/src/plugins/sqldrivers/mysql - oder liege ich da so falsche
)
Auch nach umkopieren des gesamten Includes und lib-Verzeichnisses in einen Ordner ohne Leerzeichen im Namen erhalte ich nach wie vor die selben Fehlermeldungen. Er findet 50 nicht aufgelöste externe Symbole .
Gruss
Tilman (Räger)
Leider nein! entweder mache ich irgendetwas von Grund auf FalschChristian81 hat geschrieben:Wenn Du die QMySQL - Bibliothek nach Anleitung baust und aufpasst dass die MySQL-Header und Libraries in einem Pfad ohne Leerzeichen liegt und dies korrekt an qmake übergibst funktioniert es auch. Dumpbin und co helfen dir hier definitiv nicht weiter.
Auch nach umkopieren des gesamten Includes und lib-Verzeichnisses in einen Ordner ohne Leerzeichen im Namen erhalte ich nach wie vor die selben Fehlermeldungen. Er findet 50 nicht aufgelöste externe Symbole .
Gruss
Tilman (Räger)
-
Tilman Räger
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
Re: QMySQL Bibliothek
Hallo,
Problem gelöst - offensichtlich war die falsche Variante der MySQL-Bibliothek (64-Bit-Variante) installiert. Nach Neuinstallation von MySQL hat die Erstellung fehlerfrei funktioniert
Tilman (Räger)
Problem gelöst - offensichtlich war die falsche Variante der MySQL-Bibliothek (64-Bit-Variante) installiert. Nach Neuinstallation von MySQL hat die Erstellung fehlerfrei funktioniert
Tilman (Räger)
-
Tilman Räger
- Beiträge: 189
- Registriert: 6. Juni 2007 15:23
- Wohnort: Göttingen
Re: QMySQL Bibliothek
Hallo,
nochmal das Problem mit der MySQL-Bibliothek:
Obwohl ich die QMySQL-Bibliothek korrekt erstellen konnte, weigert sich das System, diese zu laden. Muss ich außer dieser Bibliothek noch andere Bibliotheken neu bauen, um Unterstützung für MySQL einzucompilieren? Falls ja, welche und was muss ich über Configure ändern, damit er die Bibliotheken überhaupt erstellt.
Oder kann es sein, das sich Qt an der unterschiedlichen Versionsnummer stört (meine bisherigen Bibliotheken sind 4.8.1, die QMySQL-Bibliothek ist 4.8.4)
Gruss
Tilman (Räger)
nochmal das Problem mit der MySQL-Bibliothek:
Obwohl ich die QMySQL-Bibliothek korrekt erstellen konnte, weigert sich das System, diese zu laden. Muss ich außer dieser Bibliothek noch andere Bibliotheken neu bauen, um Unterstützung für MySQL einzucompilieren? Falls ja, welche und was muss ich über Configure ändern, damit er die Bibliotheken überhaupt erstellt.
Oder kann es sein, das sich Qt an der unterschiedlichen Versionsnummer stört (meine bisherigen Bibliotheken sind 4.8.1, die QMySQL-Bibliothek ist 4.8.4)
Gruss
Tilman (Räger)
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: QMySQL Bibliothek
Andersrum würde es gehen - so herum nicht - siehe Doku: http://qt-project.org/doc/qt-4.8/deploy ... ugins.html
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung