Статическая сборка QT 5



  • Здравствуйте Форумчани!
    Пытаюсь статически собрать QT.
    Операционная система Windows 7 SP1 x32 чистая
    Qt 5.1.0 for Windows 32-bit (MinGW 4.8, OpenGL, 666 MB) http://download.qt-project.org/offic...86-offline.exe
    Всё устанавливается без проблем. Во время установки выбираю все галочки, лицензия первая
    Qt устанавливаю на диск D:
    Запускаю Qt Creator приложения компилируются пустой стандартный проект.
    Первый скриншот --- какие библиотеки требуются после релиз компиляции.

    Устанавливаю Perl http://www.activestate.com/activeper...x86-296746.msi
    Perl устанавливаю на диск C: Все оставляю по умолчанию во время установки.

    После этого правлю два файла
    D:\Qt\Qt5.1.0\5.1.0\Src\qtbase\mkspecs\win32-g++\gmake.conf
    D:\Qt\Qt5.1.0\5.1.0\mingw48_32\mkspecs\win32-g++\gmake.conf

    Заменяю строчку QMAKE_LFLAGS =
    на строчку= QMAKE_LFLAGS += -static

    После этого запускай cmd из директории D:\Qt\Qt5.1.0\5.1.0\Src\qtbase\ (в ней лежит configure.exe)
    Прописываю переменные окружения
    SET QTDIR=D:\Qt\Qt5.1.0\5.1.0
    SET PATH=D:\Qt\Qt5.1.0\5.1.0\mingw48_32\bin; D:\Qt\Qt5.1.0\Tools\mingw48_32\bin;C:\Perl\perl\bin;%PATH%
    (пробелов в строке нет, просто если не поставит то выводит : вместо диска D: )
    после запускаю
    configure -opensource -release -nomake examples -nomake demos -nomake tools -nomake translations -nomake docs -no-rtti -no-openssl -no-opengl -static -platform win32-g++

    ожидаю минуты 3
    Выдаёт Qt готов для строительства, просто запустите mingw32-make

    после запускаю
    mingw32-make

    иду пить чай где-то через 20-30 минут всё закончилось, ошибок не выдало.

    Создаю новый стандартный проект в Qt Creator
    Компилирую на релизе. Пытаюсь запустить требует DLL второй скриншот.

    Попытка 3 в профайле добавляю в конце CONFIG +=static

    Выбираю релиз, компилирую. Та же картина что и со второй попыткой.
    Главное что после компиляции приложение запускает из Qt Creator во всех случаях.

    Опытным путём и гуглением форума нашёл файлы которые должны лежать рядом для успешного запуска. Файлы не отмеченные зелёном в корне папки лежат, файлы отмеченные зелёным лежат в папке platforms в корне этой папке.

    Вопрос, что я делаю не так? Помогите найти решение данной проблемы.





  • Для Visual Studio 2010 это делается следующим образом:

    1. Поправить спецификации сборки для использования статического ран-тайма – в файле mkspecs/win32-msvc2010/qmake.conf нужно заменить в переменных QMAKE_CFLAGS_RELEASE, QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO и QMAKE_CFLAGS_DEBUG параметр -Mxxx на -MT для релиза, -MTd для дебага.
    2. Из-под Visual Studio 2010 Command Prompt выполнить (пример моих флагов):
      configure.bat -debug-and-release -opensource -static -ltcg -accessibility -qt-sql-sqlite -no-openvg -platform win32-msvc2010 -qt-zlib -qt-libpng -qt-libjpeg -incredibuild-xge -plugin-manifests -qmake -dont-process -rtti -openssl -no-dbus -audio-backend -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -qt-style-fusion -qt-style-windowsce -qt-style-windowsmobile -native-gestures -opengl desktop
    3. Все из-под того же VS2010 Command Promt: nmake

Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.