Seite 1 von 1

MySql Plugin mit Embedded MySQL Server

Verfasst: 4. Juni 2007 16:07
von SuperSonik
Hallo Leute,
ich würde gerne Qt mit dem MySQL Plugin kompilieren.
Dabei hätte ich den MySQL - Server gerne "Embedded".
Also erstmal, ich benutze:
OS: Windows XP Prof.
QT: Open Source Edition 4.3.0
Mingw: 3.4.2
MySql: 5.0 (ich habe nur die header etc. installiert)
In der Anleitung hier:
http://doc.trolltech.com/4.3-snapshot/s ... and-higher
steht man soll -lmysqlclient_r gegen -lmysqld tauschen.
Aber das ist leider die Anleitung für Linux.
Aber gegen welche Bib. muß ich unter Windows linken?
Zur Auswahl habe ich libmysql.lib, mysqlclient.lib, mysys-nt.lib.
Ich denke mal es ist nicht die mysqlclient.lib?!
Aber welche von den anderen beiden ?
Meine Vermutung ist ja libmysql.lib, aber gegen welche Bib. würde man dann linken wenn man das Ganze nicht "Embedded" haben wollte ?

Dann die zweite Frage :
Hat das jemand schon mal hinbekommen? Muß man dann in der Benutzung der entsprechenden SQL - Klassen von Qt irgendwas spezielles beachten ?

Danke schon mal im vorraus,
SuperSonik

Verfasst: 5. Juni 2007 09:30
von SuperSonik
Ich bins nochmal.
Ich hab inzwischen herausgefunden, dass man um die embedded Version zu erhalten in der Datei qsql_mysql.cpp die zeile

Code: Alles auswählen

# define Q_NO_MYSQL_EMBEDDED 
auskommentieren muss.
Allerdings funktioniert das Erstellen des Mysql Plugins bei mir die ganze Zeit nicht.
ich habe im ordner
%QTDIR%\src\plugins\sqldrivers\mysql
zuerst den Befehl

Code: Alles auswählen

qmake -o Makefile "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MySQL\lib\opt\libmysql.lib" mysql.pro 
ausgeführt.
Wenn ich danach jedoch mingw32-make ausführe erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

Creating library file: c:\Qt\4.3.0\plugins\sqldrivers\libqsqlmysql4.a
tmp\obj\release_shared\qsql_mysql.o(.text+0x4c):qsql_mysql.cpp: undefined reference to `mysql_character_set_name@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x184):qsql_mysql.cpp: undefined reference to `mysql_error@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x19a):qsql_mysql.cpp: undefined reference to `mysql_errno@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x6d7):qsql_mysql.cpp: undefined reference to `mysql_stmt_error@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x6eb):qsql_mysql.cpp: undefined reference to `mysql_stmt_errno@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0xa25):qsql_mysql.cpp: undefined reference to `mysql_stmt_data_seek@12'
tmp\obj\release_shared\qsql_mysql.o(.text+0xa39):qsql_mysql.cpp: undefined reference to `mysql_stmt_fetch@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0xb13):qsql_mysql.cpp: undefined reference to `mysql_data_seek@12'
tmp\obj\release_shared\qsql_mysql.o(.text+0xb2a):qsql_mysql.cpp: undefined reference to `mysql_fetch_row@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0xc8f):qsql_mysql.cpp: undefined reference to `mysql_stmt_fetch@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0xcd7):qsql_mysql.cpp: undefined reference to `mysql_fetch_row@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0xd3f):qsql_mysql.cpp: undefined reference to `mysql_num_rows@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0xd7a):qsql_mysql.cpp: undefined reference to `mysql_stmt_num_rows@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x1088):qsql_mysql.cpp: undefined reference to `mysql_fetch_lengths@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x179c):qsql_mysql.cpp: undefined reference to `mysql_stmt_num_rows@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x17b7):qsql_mysql.cpp: undefined reference to `mysql_num_rows@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x17fe):qsql_mysql.cpp: undefined reference to `mysql_insert_id@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x183d):qsql_mysql.cpp: undefined reference to `mysql_stmt_insert_id@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x191e):qsql_mysql.cpp: undefined reference to `mysql_errno@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x1936):qsql_mysql.cpp: undefined reference to `mysql_field_seek@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x1944):qsql_mysql.cpp: undefined reference to `mysql_fetch_field@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x19b4):qsql_mysql.cpp: undefined reference to `mysql_field_seek@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x1a6e):qsql_mysql.cpp: undefined reference to `mysql_server_init@12'
tmp\obj\release_shared\qsql_mysql.o(.text+0x2469):qsql_mysql.cpp: undefined reference to `mysql_close@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x2dfc):qsql_mysql.cpp: undefined reference to `mysql_list_fields@12'
tmp\obj\release_shared\qsql_mysql.o(.text+0x2e45):qsql_mysql.cpp: undefined reference to `mysql_fetch_field@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x2eac):qsql_mysql.cpp: undefined reference to `mysql_free_result@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x3024):qsql_mysql.cpp: undefined reference to `mysql_query@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x31e4):qsql_mysql.cpp: undefined reference to `mysql_query@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x33a4):qsql_mysql.cpp: undefined reference to `mysql_query@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x3a20):qsql_mysql.cpp: undefined reference to `mysql_real_escape_string@16'
tmp\obj\release_shared\qsql_mysql.o(.text+0x446c):qsql_mysql.cpp: undefined reference to `mysql_init@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x458c):qsql_mysql.cpp: undefined reference to `mysql_real_connect@32'
tmp\obj\release_shared\qsql_mysql.o(.text+0x4649):qsql_mysql.cpp: undefined reference to `mysql_select_db@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x46ab):qsql_mysql.cpp: undefined reference to `mysql_set_character_set@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x46e8):qsql_mysql.cpp: undefined reference to `mysql_get_client_version@0'
tmp\obj\release_shared\qsql_mysql.o(.text+0x4702):qsql_mysql.cpp: undefined reference to `mysql_get_server_version@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x4bbc):qsql_mysql.cpp: undefined reference to `mysql_close@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x53e0):qsql_mysql.cpp: undefined reference to `mysql_list_tables@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x5413):qsql_mysql.cpp: undefined reference to `mysql_data_seek@12'
tmp\obj\release_shared\qsql_mysql.o(.text+0x5421):qsql_mysql.cpp: undefined reference to `mysql_fetch_row@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x54a5):qsql_mysql.cpp: undefined reference to `mysql_free_result@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x560f):qsql_mysql.cpp: undefined reference to `mysql_stmt_result_metadata@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x562a):qsql_mysql.cpp: undefined reference to `mysql_num_fields@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x5714):qsql_mysql.cpp: undefined reference to `mysql_fetch_field@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x5913):qsql_mysql.cpp: undefined reference to `mysql_next_result@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x5931):qsql_mysql.cpp: undefined reference to `mysql_store_result@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x5940):qsql_mysql.cpp: undefined reference to `mysql_free_result@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x595a):qsql_mysql.cpp: undefined reference to `mysql_next_result@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x5b32):qsql_mysql.cpp: undefined reference to `mysql_free_result@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x5b56):qsql_mysql.cpp: undefined reference to `mysql_stmt_close@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x5e30):qsql_mysql.cpp: undefined reference to `mysql_stmt_prepare@12'
tmp\obj\release_shared\qsql_mysql.o(.text+0x5f3d):qsql_mysql.cpp: undefined reference to `mysql_stmt_init@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x5ff7):qsql_mysql.cpp: undefined reference to `mysql_stmt_param_count@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x6018):qsql_mysql.cpp: undefined reference to `mysql_stmt_param_count@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x624e):qsql_mysql.cpp: undefined reference to `mysql_real_query@12'
tmp\obj\release_shared\qsql_mysql.o(.text+0x63d4):qsql_mysql.cpp: undefined reference to `mysql_store_result@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x63fa):qsql_mysql.cpp: undefined reference to `mysql_field_count@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x641f):qsql_mysql.cpp: undefined reference to `mysql_field_count@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x647d):qsql_mysql.cpp: undefined reference to `mysql_affected_rows@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x64e7):qsql_mysql.cpp: undefined reference to `mysql_fetch_field_direct@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x6b04):qsql_mysql.cpp: undefined reference to `mysql_stmt_reset@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x6ef5):qsql_mysql.cpp: undefined reference to `mysql_stmt_param_count@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x6f10):qsql_mysql.cpp: undefined reference to `mysql_stmt_param_count@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x6f40):qsql_mysql.cpp: undefined reference to `mysql_stmt_execute@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x7055):qsql_mysql.cpp: undefined reference to `mysql_stmt_affected_rows@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x709d):qsql_mysql.cpp: undefined reference to `mysql_stmt_bind_result@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x70e0):qsql_mysql.cpp: undefined reference to `mysql_stmt_attr_set@12'
tmp\obj\release_shared\qsql_mysql.o(.text+0x7102):qsql_mysql.cpp: undefined reference to `mysql_stmt_store_result@4'
tmp\obj\release_shared\qsql_mysql.o(.text+0x714d):qsql_mysql.cpp: undefined reference to `mysql_stmt_bind_result@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x75fa):qsql_mysql.cpp: undefined reference to `mysql_stmt_bind_param@8'
tmp\obj\release_shared\qsql_mysql.o(.text+0x1a95):qsql_mysql.cpp: undefined reference to `mysql_server_end@0'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysql4.dll] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/4.3.0/src/plugins/sqldrivers/mysql'
mingw32-make: *** [release] Error 2

Sorry ist etwas lang aber ich wußte nicht was ich weglassen kann.
Hat jemand eine Ahnung was ich falsch mache?
Gruß,
SuperSonik

Verfasst: 7. Juni 2007 17:00
von SuperSonik
Ich hänge immer noch an dem Problem mit dem Mysql - Plugin.
Der Kompiliervorgang bricht immer mit der Fehlermeldung

Code: Alles auswählen

4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x10d): In function `Z5codecP8st_mysql':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:193: undefined reference to `mysql_character_set_name@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x188): In function `Z10qMakeErrorRK7QStringN9QSqlError9ErrorTypeEPK19QMYSQLDriverP
':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:204: undefined reference to `mysql_error@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x19b):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:205: undefined reference to
l_errno@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x70c): In function `Z14qMakeStmtErrorRK7QStringN9QSqlError9ErrorTypeEP13st_mysql_s

4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:275: undefined reference to `mysql_stmt_error@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x71d):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:276: undefined reference to
l_stmt_errno@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0xa78): In function `ZN19QMYSQLResultPrivate12bindInValuesEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:316: undefined reference to `mysql_stmt_result_metadata@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0xaa1):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:320: undefined reference to
l_num_fields@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0xb20):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:327: undefined reference to
l_fetch_field@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x11e9): In function `ZN12QMYSQLResult7cleanupEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:384: undefined reference to `mysql_free_result@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x11fc):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:389: undefined reference t
ql_next_result@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x1213):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:390: undefined reference t
ql_store_result@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x122a):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:392: undefined reference t
ql_free_result@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x124c):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:398: undefined reference t
ql_stmt_close@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x1289):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:404: undefined reference t
ql_free_result@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x14fa): In function `ZN12QMYSQLResult5fetchEi':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:450: undefined reference to `mysql_stmt_data_seek@12'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x150e):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:452: undefined reference t
ql_stmt_fetch@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x167b):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:461: undefined reference t
ql_data_seek@12'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x169b):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:462: undefined reference t
ql_fetch_row@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x171e): In function `ZN12QMYSQLResult9fetchNextEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:475: undefined reference to `mysql_stmt_fetch@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x1745):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:481: undefined reference t
ql_fetch_row@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x17ff): In function `ZN12QMYSQLResult9fetchLastEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:500: undefined reference to `mysql_stmt_num_rows@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x181b):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:505: undefined reference t
ql_num_rows@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x1b40): In function `ZN12QMYSQLResult4dataEi':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:546: undefined reference to `mysql_fetch_lengths@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x265c): In function `ZN12QMYSQLResult5resetERK7QString':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:603: undefined reference to `mysql_real_query@12'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x27ce):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:608: undefined reference t
ql_store_result@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x27fa):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:609: undefined reference t
ql_field_count@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x29a8):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:614: undefined reference t
ql_field_count@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x2a02):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:617: undefined reference t
ql_affected_rows@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x2a4e):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:620: undefined reference t
ql_fetch_field_direct@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x2b9e): In function `ZN12QMYSQLResult4sizeEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:633: undefined reference to `mysql_stmt_num_rows@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x2bb7):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:638: undefined reference t
ql_num_rows@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x2c1c): In function `ZNK12QMYSQLResult12lastInsertIdEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:655: undefined reference to `mysql_stmt_insert_id@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x2c5a):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:660: undefined reference t
ql_insert_id@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x2d55): In function `ZNK12QMYSQLResult6recordEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:680: undefined reference to `mysql_errno@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x2d73):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:681: undefined reference t
ql_field_seek@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x2d81):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:682: undefined reference t
ql_fetch_field@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x2e32):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:685: undefined reference t
ql_fetch_field@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x2e57):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:688: undefined reference t
ql_field_seek@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x307a): In function `ZN12QMYSQLResult7prepareERK7QString':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:730: undefined reference to `mysql_stmt_init@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x3250):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:738: undefined reference t
ql_stmt_prepare@12'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x3415):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:746: undefined reference t
ql_stmt_param_count@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x3439):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:747: undefined reference t
ql_stmt_param_count@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x361f): In function `ZN12QMYSQLResult4execEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:769: undefined reference to `mysql_stmt_reset@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x37dc):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:776: undefined reference t
ql_stmt_param_count@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x37f8):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:776: undefined reference t
ql_stmt_param_count@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x3d8a):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:856: undefined reference t
ql_stmt_bind_param@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x3f52):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:864: undefined reference t
ql_stmt_execute@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x4149):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:876: undefined reference t
ql_stmt_affected_rows@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x418d):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:881: undefined reference t
ql_stmt_bind_result@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x4368):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:888: undefined reference t
ql_stmt_attr_set@12'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x4386):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:890: undefined reference t
ql_stmt_store_result@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x456b):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:902: undefined reference t
ql_stmt_bind_result@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x49d0): In function `Z12qLibraryInitv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:928: undefined reference to `mysql_server_init@12'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x49f1): In function `Z11qLibraryEndv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:943: undefined reference to `mysql_server_end@0'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x5aa2): In function `ZN12QMYSQLDriver4openERK7QStringS2_S2_S2_iS2_':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1087: undefined reference to `mysql_init@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x5d29):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1087: undefined reference
sql_real_connect@32'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x5f73):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1102: undefined reference
sql_select_db@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x6249):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1105: undefined reference
sql_close@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x650d):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1112: undefined reference
sql_close@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x6585):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1118: undefined reference
sql_set_character_set@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x65c5):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1125: undefined reference
sql_get_client_version@0'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x65dc):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1125: undefined reference
sql_get_server_version@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x672c): In function `ZN12QMYSQLDriver5closeEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1139: undefined reference to `mysql_close@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x68b3): In function `ZNK12QMYSQLDriver6tablesEN4QSql9TableTypeE':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1158: undefined reference to `mysql_list_tables@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x68e8):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1162: undefined reference
sql_data_seek@12'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x68f6):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1163: undefined reference
sql_fetch_row@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x69ac):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1169: undefined reference
sql_free_result@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x74a0): In function `ZNK12QMYSQLDriver6recordERK7QString':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1204: undefined reference to `mysql_list_fields@12'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x74fa):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1209: undefined reference
sql_fetch_field@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x75b8):C:/Qt/4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1211: undefined reference
sql_free_result@4'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x76ba): In function `ZN12QMYSQLDriver16beginTransactionEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1229: undefined reference to `mysql_query@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x7872): In function `ZN12QMYSQLDriver17commitTransactionEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1246: undefined reference to `mysql_query@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x7a2a): In function `ZN12QMYSQLDriver19rollbackTransactionEv':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1263: undefined reference to `mysql_query@8'
4.3.0\lib/libQtSqld.a(qsql_mysql.o)(.text+0x7f06): In function `ZNK12QMYSQLDriver11formatValueERK9QSqlFieldb':
4.3.0/src/sql/drivers/mysql/qsql_mysql.cpp:1288: undefined reference to `mysql_real_escape_string@16'
t2: ld returned 1 exit status
2-make[4]: *** [debug\cachedtable.exe] Error 1
2-make[4]: Leaving directory `C:/Qt/4.3.0/examples/sql/cachedtable'
2-make[3]: *** [debug-all] Error 2
2-make[3]: Leaving directory `C:/Qt/4.3.0/examples/sql/cachedtable'
2-make[2]: *** [sub-cachedtable-make_default] Error 2
2-make[2]: Leaving directory `C:/Qt/4.3.0/examples/sql'
2-make[1]: *** [sub-sql-make_default] Error 2
2-make[1]: Leaving directory `C:/Qt/4.3.0/examples'
2-make: *** [sub-examples-make_default-ordered] Error 2
Es stimmt also irgendetwas mit irgendwelchen mysql_character_set nicht, und mit irgendwelchen Debuginfos.

Diesen configure Befehl habe ich immer benutzt:

Code: Alles auswählen

configure -debug-and-release -I "C:\MySQL\include" -L "C:\MySQL\lib\debug" -static -no-fast -exceptions -accessibility -stl -qt-sql-mysql -qt-sql-odbc -arch windows -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -incredibuild-xge -qmake -no-qt3support -process -rtti -no-openssl -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -qt-style-plastique -qt-style-cleanlooks -qt-style-motif -qt-style-cde


Ich habe auch schon statt -static -shared versucht und bei -L nicht die debug sondern die bib. unter opt.

Hat jemand eine Ahnung? Ich bin für jeden Hinweis dankbar!
Gruß,
SuperSonik[/code]

Verfasst: 7. Juni 2007 17:05
von ChMaster
servus,

es wäre immer besser die umgebungsvariabeln in windows zu setzen :)


Lösung:
* die umgebungsvariabeln für mysql5 setzen
* configure mit der option: -plugin-sql-mysql (nur die plugins lieben :))

wenn die umgebungsvariabeln gesetzt sind findet configure die header und
die lib von mysql selbst.

Verfasst: 7. Juni 2007 17:22
von SuperSonik
Wie heißt den die passende Umgebungsvariable ?
Ist das dann "Lib" oder sowas? Ich hatte bisher nur mit Path zu tuen.
Danke schon mal!
Gruß,
SuperSonik

Verfasst: 7. Juni 2007 17:24
von ChMaster
servus,

woll wir mal nicht so sein und einem neuling etwas unter die arme greifen ;)

Arbeitsplatz->rechte Maustaste->Eigenschaften->Erweitert->Umgebungsvariabeln

bei Systemvariabeln:

* Neu
* Name der Variabel: MYSQL
* Wert der Variabel: C:\Mysql
* ok

* Neu
* Name der Variabel: LIB
* Wert der Variabel: %MYSQL%\lib\opt;%LIB%
* ok

* Neu
* Name der Variabel: INCLUDE
* Wert der Variabel: %MYSQL%\include;%LIB%
* ok

* ok
* Neu
* Name der Variabel: PATH (wenn schon vorhanden, einfach hinten dran setzen und mit ; abschliessen)
* Wert der Variabel: %MYSQL%\bin;%PATH%

evtl. windows neustarten und schon kannste loslegen :)

Verfasst: 7. Juni 2007 17:29
von SuperSonik
Ja das kenne ich schon. :P
Nur da ist noch keine Variable definiert die offensichtlich für Bibliothekspfade
oder so ist. Also muß ich eine neue anlegen. Wie muß die nun heißen
damit configure da auch sucht ? :wink:
Gruß,
Sonik

Verfasst: 7. Juni 2007 17:31
von ChMaster
alles was du bei LIB rein steckst da sucht auch configure.
der name der variabel mus LIB heissen ...... siehe vorherigen
post von mir :)

Verfasst: 7. Juni 2007 19:01
von SuperSonik
Oh,
sorry ich habe nicht gut hingekuckt und habe den Teil mit den Variablen
für deine Signatur gehalten. :oops:
Ich probiere das mal aus, danke schon mal.
Gruß,
SuperSonik

Verfasst: 7. Juni 2007 21:04
von SuperSonik
ok,
ich habe es ausprobiert. Leider ist das Ergebnis das Gleiche. :(

Hat jemand Rat? :?
Gruß,
SuperSonik

Verfasst: 7. Juni 2007 21:46
von ChMaster
servus,

versuch mal das:
configure.exe -qt-sql-mysql -lmysql -I C:\MySql\include -L C:\MySql\lib\opt
(aus der QtWiki.)

natürlich musst du "C:\MySql" durch deinen pfad ersetzen und du brauchst
die "libMYSQL.dll".

Verfasst: 7. Juni 2007 21:54
von SuperSonik
Super,
sowas habe ich gesucht.
Vielen Dank. Ich denke, dass dieses reimp mein Problem löst.
Gruß,
SuperSonik

Verfasst: 8. Juni 2007 22:12
von ChMaster
servus,

hier mal ein kleiner tip von SuperSonik (kann sich derzeit nicht einloggen)
wie man das problem lösen kann:

Code: Alles auswählen

Mit diesem kleinen batch file konnte ich bei mir das mysql plugin compilieren.
Es ist auch nicht ein Problem von QT sondern Mingw, welches nämlich die normalen *.lib libraries nicht lesen kann.

cd %MYSQL%\lib\opt
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l 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

Verfasst: 9. Juni 2007 09:47
von SuperSonik
Hallo Leute,
also bei mir hat es jetzt endlich auch geklappt.
Und zwar mit dieser :http://qtnode.net/wiki/Qt4_on_Windows
Anleitung.
Vielen Dank Leute !
Gruß,
SuperSonik