Добрый день.
Написал небольшое приложение на QT, хочу сделать его доступным не только на моем ноутбуке, но и для всех остальных. У меня Windows 7 64 bit, хотелось бы, чтобы приложение работало и на XP 32 bit.
Вообщем что я сделал, и чего добился:
1. Для начала со страницы
qt-project.org/downloads скачал «Qt 5.0.1 for Windows 32-bit (MinGW 4.7, 823 MB)». Именно 5-я версия мне не нужна, но для нее есть пакет «все внутри», с компилятором и всем-всем-всем.
2. При установке поставил все компоненты, включая Src.
Установлено все в D:\Qt, в итоге имею следующую структуру папок:
В D:\QT папка QT5.0.1, в которой папки:
5.0.1
Licenses
Tools
Внутри 5.0.1 папки mingw47_32 и Src.
Путь к g++.exe и mingw32-make.exe — D:\Qt\Qt5.0.1\Tools\MinGW\bin
На этом этапе проверил, что мое приложение компилируется и запускается. Правда только из Qt Creator. Попытка перенести его не увенчалась успехом.
Скопировал к нему все библиотеки, про которые Dependency Walker сказал, однако все равно не запускается. Ну да не суть, тащить с приложением размером 150 кб библиотек на 40 мб идея не очень. Решил собрать static.
Пути, про которые пишут в документации и в статьях на хабре, у меня почему-то выглядят совсем иначе. Возможно, из-за того, что версия Qt не 4.8, а 5.0
Вообщем configure.exe я нашел в D:\Qt\Qt5.0.1\5.0.1\Src\qtbase
qmake.conf я исправил в двух местах, в D:\Qt\Qt5.0.1\5.0.1\Src\qtbase\mkspecs\win32-g++ и в D:\Qt\Qt5.0.1\5.0.1\mingw47_32\mkspecs\win32-g++
В обоих файлах опцию «QMAKE_LFLAGS = » я заменил на «QMAKE_LFLAGS += -static»
После этого установил Perl и в каталоге D:\Qt\Qt5.0.1\5.0.1\Src\qtbase выполнил сначала:
SET QTDIR=D:\Qt\Qt5.0.1\5.0.1\
SET PATH=D:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin;D:\Qt\Qt5.0.1\Tools\MinGW\bin;D:\Perl\perl\bin;%PATH%
configure -opensource -release -nomake examples -nomake demos -nomake tools -nomake translations -nomake docs -no-rtti -no-openssl -no-opengl -static -platform win32-g++
А затем «mingw32-make»
Минут за 15-20 оно скомпилировалось, ошибок не выдало.
Однако теперь, при попытке собрать приложение из Qt Creator я получаю ошибки вида
«skipping incompatible D:\Qt\Qt5.0.1\5.0.1\mingw47_32\lib\libQt5Gui.a when searching for -lQt5Gui»
«cannot find -lQt5Gui»
Чего я хочу добиться:
Мне по большому счету не нужен QT Creator и прочее (я пишу и испытываю приложение в линуксе, а пользователи на windows). Я бы хотел иметь минимум для статичной сборки приложения как в линуксе — запустил в папке «make clean && qmake -project && qmake && make» и получил готовый .exe
Ну и понять, что не так я сделал и почему компиляция сломалась.