1
votes

Recently I revisited some QT code and then wrote something simple. Works with dynamic QT, but when using qt make from qt5-static, I get

debug/editor.o: In function qMain(int, char**)': C:\msys64\home\tim\Projects\editor/editor.cpp:6: undefined reference to__imp__ZN12QApplicationC1ERiPPci' C:\msys64\home\tim\Projects\editor/editor.cpp:7: undefined reference to __imp__ZN9QTextEditC1EP7QWidget' C:\msys64\home\tim\Projects\editor/editor.cpp:8: undefined reference to__imp__ZN7QWidget4showEv' C:\msys64\home\tim\Projects\editor/editor.cpp:9: undefined reference to __imp__ZN12QApplication4execEv' C:\msys64\home\tim\Projects\editor/editor.cpp:7: undefined reference to__imp__ZN9QTextEditD1Ev' C:\msys64\home\tim\Projects\editor/editor.cpp:6: undefined reference to __imp__ZN12QApplicationD1Ev' C:\msys64\home\tim\Projects\editor/editor.cpp:7: undefined reference to__imp__ZN9QTextEditD1Ev' C:\msys64\home\tim\Projects\editor/editor.cpp:6: undefined reference to `__imp__ZN12QApplicationD1Ev'

for

#include <QApplication>
#include <QTextEdit>

int main(int argv, char **args)
{
        QApplication app(argv, args);
        QTextEdit textEdit;
        textEdit.show();
        return app.exec();
}

the linker seems to be pulling in all the right things

g++ -static -Wl,-subsystem,windows -mthreads -o debug/editor.exe debug/editor.o debug/editor_plugin_import.o -lmingw32 -LC:/msys64/mingw64/qt5-static/lib C:/msys64/mingw64/qt5-static/lib/libqtmaind.a -LC:/msys64/mingw64/qt5-static/share/qt5/plugins/styles C:/msys64/mingw64/qt5-static/share/qt5/plugins/styles/libqwindowsvistastyled.a -LC:/msys64/mingw64/qt5-static/share/qt5/plugins/platforms C:/msys64/mingw64/qt5-static/share/qt5/plugins/platforms/libqwindowsd.a -lwinspool -lshlwapi -lrpcrt4 C:/msys64/mingw64/qt5-static/lib/libQt5EventDispatcherSupportd.a C:/msys64/mingw64/qt5-static/lib/libQt5FontDatabaseSupportd.a C:/msys64/mingw64/qt5-static/lib/libqtfreetyped.a C:/msys64/mingw64/qt5-static/lib/libQt5ThemeSupportd.a C:/msys64/mingw64/qt5-static/lib/libQt5AccessibilitySupportd.a C:/msys64/mingw64/qt5-static/lib/libQt5VulkanSupportd.a -LC:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqgifd.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqicnsd.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqicod.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqjp2d.a -ljasper C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqjpegd.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtgad.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqtiffd.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwbmpd.a C:/msys64/mingw64/qt5-static/share/qt5/plugins/imageformats/libqwebpd.a C:/msys64/mingw64/qt5-static/lib/libQt5Widgetsd.a -luxtheme -ldwmapi C:/msys64/mingw64/qt5-static/lib/libQt5Guid.a -lcomdlg32 -loleaut32 -limm32 -lglu32 -lopengl32 -lgdi32 C:/msys64/mingw64/qt5-static/lib/libqtlibpngd.a C:/msys64/mingw64/qt5-static/lib/libqtharfbuzzd.a C:/msys64/mingw64/qt5-static/lib/libQt5Cored.a -lmpr -lnetapi32 -luserenv -lversion -lws2_32 -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lwinmm C:/msys64/mingw64/qt5-static/lib/libqtpcre2d.a

Everything should be installed

$ pacman -Ss qt5-static mingw32/mingw-w64-i686-qt5-static 5.10.0-2 (mingw-w64-i686-qt mingw-w64-i686-qt5) [installed] A cross-platform application and UI framework (mingw-w64-static) mingw64/mingw-w64-x86_64-qt5-static 5.10.0-2 (mingw-w64-x86_64-qt mingw-w64-x86_64-qt5) [installed] A cross-platform application and UI framework (mingw-w64-static)

I made the pro with qmake -project and added QT += widgets. 'qmake' (dynamic) works, but '\mingw64\qt5-static\bin\qmake' results in undefined references. Any tips much appreciated.

1

1 Answers

0
votes

I had to reinstall mingw64/mingw-w64-x86_64-qt5-static and then it worked.