statisches Binden mit Qt4.4 und MinGW
Verfasst: 6. August 2008 11:48
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
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