У меня проблемы с тем, чтобы Qt статически связывал свои библиотеки при кросс-компиляции с моего компьютера с Linux на Windows.Я добавил это в мою конфигурацию, чтобы сделать статическую компиляцию статически.
win32:CONFIG += -static
И, глядя на вывод команды make, она, кажется, прошла флаги правильно (пропуская объектные файлы, чтобы сделать его коротким)
i686-w64-mingw32-g++ -static -static-libstdc++ -static-libgcc -Wl,-subsystem,windows -mthreads [exe and object files] /usr/i686-w64-mingw32/lib/libQt5Widgets.dll.a -ldwmapi -luxtheme /usr/i686-w64-mingw32/lib/libQt5Gui.dll.a -lopengl32 -lgdi32 -lcomdlg32 -loleaut32 -limm32 -ljpeg -lpng -L/usr/i686-w64-mingw32/lib -lfreetype -lbz2 -lharfbuzz -lm -lintl -lglib-2.0 -lshlwapi -lpcre -lgraphite2 /usr/i686-w64-mingw32/lib/libQt5Core.dll.a -lz -lpcre2-16 -liconv -lversion -lnetapi32 -luserenv -lole32 -luuid -lwinmm -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 /usr/i686-w64-mingw32/lib/libglu32.a /usr/i686-w64-mingw32/lib/libopengl32.a /usr/i686-w64-mingw32/lib/libgdi32.a /usr/i686-w64-mingw32/lib/libuser32.a -lmingw32 /usr/i686-w64-mingw32/lib/libqt5main.a -lshell32
Как видите, статические флаги передаются компилятору правильно, однако я попытался запустить полученный exe-файл как в WINE, так и на машине с Windows, но в обоих случаях он говорит мне, что ему не удалось найти DLL-файлы Qt.,В журнале ошибок вина было больше информации, поэтому он предоставляет
0009:err:module:import_dll Library Qt5Core.dll (which is needed by L"Z:\\home\\zee\\mapper\\release\\mapper.exe") not found
0009:err:module:import_dll Library Qt5Gui.dll (which is needed by L"Z:\\home\\zee\\mapper\\release\\mapper.exe") not found
0009:err:module:import_dll Library Qt5Widgets.dll (which is needed by L"Z:\\home\\zee\\mapper\\release\\mapper.exe") not found
0009:err:module:LdrInitializeThunk Importing dlls for L"Z:\\home\\zee\\mapper\\release\\mapper.exe" failed, status c0000135
Я работаю на компьютере с Arch Linux с последним пакетом qt5base aur (5.13.1) и последним пакетом mignw (g ++)9.2.0)