Hallo,
mein Projekt läuft mit Qt4.4 VC8 und dll's einwandfrei. Portierungen nach MinGW und Linux verliefen ebenfalls einwandfrei (nach einigem Ärger).
Nun soll alles statisch gelinkt werden und die Probleme gehen los.
Habe Qt4.4 erfolgreich im MinGW-Environment mit configure statisch erstellt, nur sql wollte nicht.
Das erste Beispiel aus dem Tutorial compiliert, aber will nicht linken. Es kommt zu folgenden Fehlermeldungen:
release/main.o(.text+0x61):main.cpp: undefined reference to `QApplication::QApplication(int&, char**, int)'
aufgerufen wird das Ganze mit:
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/Programme/Qt4.4/examples/tutorials/tutorial/t1'
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o release\t1.exe release/main.o -L"c:\Programme\Qt4.4\lib" -L"c:\Commands\MinGW\lib" -L"c:\Programme\qt4.4\lib\" -L"l:\mysql\lib\debug" -L"c:\Programme\Qt4.4\lib" -lmingw32 -lqtmain -lQtGui -lQtCore -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lmsimg32 -lQtCore4 -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lws2_32
mingw32-make[1]: Leaving directory `C:/Programme/Qt4.4/examples/tutorials/tutorial/t1'
das .pro file sieht so aus
TEMPLATE = app
DESTDIR = release
OBJECTS_DIR = release
CONFIG += qt
CONFIG += warn_on
CONFIG += release
CONFIG += staticlib
CONFIG += create_prl
CONFIG += link_prl
SOURCES = main.cpp
TARGET = t1
In der Doku von QT fand sich nur staticlib, create_prl und link_prl als Anweisung für qmake. Offensichtlich reicht das nicht.
Hat jemand noch eine Idee oder einen Hinweis auf ein Tutorial.
vielen Dank im Voraus
Reinhold
statisches Binden mit Qt4.4 und MinGW
-
Troll.Soft
- Beiträge: 190
- Registriert: 18. Juni 2008 09:52
- Wohnort: Hamburg
-
Troll.Soft
- Beiträge: 190
- Registriert: 18. Juni 2008 09:52
- Wohnort: Hamburg
Ja,
hatte ich gemacht. Habe nun noch was anderes gemacht. Und zwar das Ganze Trolltech-Zeugs unter Linux compiliert statt ein RPM zu benutzen. Im Vergleich zu Windows war das ein Traum, alles lief durch. War allerdings das neueste QT.4.4.1
Habe das auch für Windows runtergeladen. und neuesten C-Compiler von MS VC2008 dazu. Das Ganze compilierte zwei Stunden vor sich hin und erzeugte mehrere Gigabyte an Daten.
Aber Juchhu, das Tutorial t1 ließ sich statisch linken.
Werde also mein System bald statisch vor mir liegen haben.
hatte ich gemacht. Habe nun noch was anderes gemacht. Und zwar das Ganze Trolltech-Zeugs unter Linux compiliert statt ein RPM zu benutzen. Im Vergleich zu Windows war das ein Traum, alles lief durch. War allerdings das neueste QT.4.4.1
Habe das auch für Windows runtergeladen. und neuesten C-Compiler von MS VC2008 dazu. Das Ganze compilierte zwei Stunden vor sich hin und erzeugte mehrere Gigabyte an Daten.
Aber Juchhu, das Tutorial t1 ließ sich statisch linken.
Werde also mein System bald statisch vor mir liegen haben.
Du musst das plugin Macro aufrufen.
also in deiner CPP
Q_IMPORT_PLUGIN(qsqlmysql)
und in der .pro datei
QTPLUGIN += qmysql
http://doc.trolltech.com/4.4/plugins-howto.html
Wenn du wieder nicht statisch compilieren willst, dann muss du dieses macro wieder auskommentieren (hat bei mir sonst nicht funktioniert)
also in deiner CPP
Q_IMPORT_PLUGIN(qsqlmysql)
und in der .pro datei
QTPLUGIN += qmysql
http://doc.trolltech.com/4.4/plugins-howto.html
Wenn du wieder nicht statisch compilieren willst, dann muss du dieses macro wieder auskommentieren (hat bei mir sonst nicht funktioniert)