Qt 4.3.0 statisch kompiliert mit MySQL-Datenbanktreiber...

Verschiedenes zu Qt
Antworten
gerome69
Beiträge: 188
Registriert: 28. April 2006 22:50
Wohnort: Berlin
Kontaktdaten:

Qt 4.3.0 statisch kompiliert mit MySQL-Datenbanktreiber...

Beitrag von gerome69 »

auf Windows XP mit dev-cpp/mingw. verlangt leider beim Start eine libmysql.dll. Offenbar ist libmysql.a nur eine Import-Definition für das, was die dll an Symbolen enthält.
Hat jemand es erfolgreich geschafft, diese dll-Abhängigkeit zu entfernen, damit mein Purismus "nur eine .exe" auch hierfür erfüllt werden kann.

Danke für Tips, Bernd
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

mysql statisch kompilieren.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
gerome69
Beiträge: 188
Registriert: 28. April 2006 22:50
Wohnort: Berlin
Kontaktdaten:

Beitrag von gerome69 »

Christian81 hat geschrieben:mysql statisch kompilieren.
Ja, das habe ich auch schon früher mal versucht. Bin dann in endlosen Abhängigkeiten hängengeblieben. Dann ist das Ganze als nächstes zB von zlib.dll abhängig. Dann muß ich auch noch die zlib statisch kompilieren etc. etc. Habe ich leider nicht zum Laufen bekommen.

Ich benutze zur Zeit das dev-pak "mysql" für dev-cpp. Und das scheint eben nicht statisch gelinkt zu sein, trotz einer mysql.a.

Gruß, Gérôme
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Die .a ist, wie Du schon festgestellt hast, nur die statische import-lib
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
patrik08
Beiträge: 746
Registriert: 27. Februar 2006 10:48
Wohnort: DE Freiburg

Beitrag von patrik08 »

gerome69 hat geschrieben:
Christian81 hat geschrieben: Ich benutze zur Zeit das dev-pak "mysql" für dev-cpp. Und das scheint eben nicht statisch gelinkt zu sein, trotz einer mysql.a.
Gruß, Gérôme

Nur mit Mingw .. mit VS scheinbar nicht moeglich

Wenn man die mysql lib.a in C:\MinGW\lib kopiert und include in . C:\MinGW\include .. geht es prima mysql -static builden..

Aber die lib von mysql server install nehmen...

Code: Alles auswählen

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

<QTDIR>\mkspecs\win32-g++\qmake.conf:  aendern in 

QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc


configure -static -release -no-exceptions -qt-sql-odbc  -qt-sql-mysql  -qt-sql-sqlite  -qt-gif -qt-libpng -qt-libjpeg -qt-libtiff -no-vcproj
am ende nimt libQtSql.a alles auf ..
.........................
speack português italiano deutsch english castellà qt
gerome69
Beiträge: 188
Registriert: 28. April 2006 22:50
Wohnort: Berlin
Kontaktdaten:

Beitrag von gerome69 »

patrik08 hat geschrieben:

Code: Alles auswählen

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

<QTDIR>\mkspecs\win32-g++\qmake.conf:  aendern in 

QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc


configure -static -release -no-exceptions -qt-sql-odbc  -qt-sql-mysql  -qt-sql-sqlite  -qt-gif -qt-libpng -qt-libjpeg -qt-libtiff -no-vcproj
am ende nimt libQtSql.a alles auf ..
Hmm, gerade mal durchgetestet. Die entstandene libmsql.a ist jetzt 112 statt der 108 KB der aus dem devpak gross.
Ins devcpp-lib-Verzeichnis kopiert, dann wie vorgeschlagen die QMAKE_LFLAGS geändert und Qt neu kompiliert.

=> leider keine Änderung. Er will immer noch die libmylsql.dll haben :-(

Gérôme
Antworten