MySQL embedded, qt 4.3.3, winXP, nmake

Verschiedenes zu Qt
Antworten
markus79
Beiträge: 3
Registriert: 23. Oktober 2007 10:49

MySQL embedded, qt 4.3.3, winXP, nmake

Beitrag von markus79 »

Hallo,

ich versuche schon länger MySQL in mein Program zu embedden.
Ich arbeite unter Windows XP mit Qt 4.3.3 und nmake. Die Doku zu libmysqld und deren Beispiele hab ich auch hingekriegt.

Folgende Zeile hab ich in qsql_mysql.cpp auskommentiert:

Code: Alles auswählen

// define Q_NO_MYSQL_EMBEDDED
Dort steht auch dass man das ganze Plugin statisch linken muss damit der Server nicht abstürzt, beim dynamischen linken stürzt er wirklich ab :-). Beim dynamischen linken gibt es keine linker probleme, aber beim statischen linken stehe ich an.
Ich linke gegen mysql-5.1.22/Embedded/static/debug/mysqlserver.lib und bekomm einige fehlermeldungen, warnungen sowie nicht aufgelöste externe symbole (nur ein Ausschnitt):

Code: Alles auswählen

LIBCMTD.lib(dosmap.obj) : error LNK2005: __errno bereits in MSVCRTD.lib(MSVCR71D.dll) definiert
LIBCMTD.lib(dosmap.obj) : error LNK2005: ___doserrno bereits in MSVCRTD.lib(MSVCR71D.dll) definiert
LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit bereits in MSVCRTD.lib(MSVCR71D.dll) definiert
LIBCMTD.lib(osfinfo.obj) : error LNK2005: __get_osfhandle bereits in MSVCRTD.lib(MSVCR71D.dll) definiert
LIBCMTD.lib(osfinfo.obj) : error LNK2005: __open_osfhandle bereits in MSVCRTD.lib(MSVCR71D.dll) definiert
LIBCMTD.lib(lseeki64.obj) : error LNK2005: __lseeki64 bereits in MSVCRTD.lib(MSVCR71D.dll) definiert
LIBCMTD.lib(setlocal.obj) : error LNK2005: _setlocale bereits in MSVCRTD.lib(MSVCR71D.dll) definiert

Code: Alles auswählen

LINK : warning LNK4098: Standardbibliothek 'MSVCRTD' steht in Konflikt mit anderen Bibliotheken;
LINK : warning LNK4098: Standardbibliothek 'LIBCMTD' steht in Konflikt mit anderen Bibliotheken;

Code: Alles auswählen

mysqlserver.lib(libmysql.obj) : error LNK2019: Nicht aufgelöstes externes Symbol '__imp__ntohs@4', verwiesen in Funktion '_mysql_server_init@12'
mysqlserver.lib(viosocket.obj) : error LNK2001: Nichtaufgelöstes externes Symbol __imp__ntohs@4
mysqlserver.lib(libmysql.obj) : error LNK2019: Nicht aufgelöstes externes Symbol '__imp__getservbyname@8', verwiesen in Funktion '_mysql_server_init@12'
mysqlserver.lib(libmysql.obj) : error LNK2019: Nicht aufgelöstes externes Symbol '__imp__MessageBoxA@16', verwiesen in Funktion '_mysql_debug@4'
...
Mit der Angabe /NODEFAULTLIB kommen diese zwar nicht mehr, jedoch eine unmenge anderer Probleme, hier der Anfang:

Code: Alles auswählen

mysqlserver.lib(item_row.obj) : error LNK2001: Nichtaufgelöstes externes Symbol "const type_info::`vftable'" (??_7type_info@@6B@)
mysqlserver.lib(md2.obj) : error LNK2001: Nichtaufgelöstes externes Symbol "const type_info::`vftable'" (??_7type_info@@6B@)
mysqlserver.lib(sql_analyse.obj) : error LNK2001: Nichtaufgelöstes externes Symbol "const type_info::`vftable'" (??_7type_info@@6B@)
mysqlserver.lib(item_sum.obj) : error LNK2001: Nichtaufgelöstes externes Symbol "const type_info::`vftable'" (??_7type_info@@6B@)
...
Wer kann mir Helfen, bzw. irgendwelche Hinweisee geben?

Mit freundlichen Grüßen und Danke im Voraus!
Markus
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Code: Alles auswählen

LINK : warning LNK4098: Standardbibliothek 'MSVCRTD' steht in Konflikt mit anderen Bibliotheken;
LINK : warning LNK4098: Standardbibliothek 'LIBCMTD' steht in Konflikt mit anderen Bibliotheken;
Ist das Resultat unterschiedlicher /MT(d) /MD(d) switches beim Kompilieren der verschiedenen Libraries. Der Switch muss überall gleich sein.

Wo die Funktionen her sind hätte dir msdn.microsoft.com verraten... ws2_32.lib

Und ein vtable-error weisst auf fehlende moc-Files hin (Forum-Suche!)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten