Все новости с меткой: qt


Ранее я уже писал, как собирать Qt 4.8 для OS X Sierra и Linux. Осталось уточнить некоторые моменты для Windows. Основное отличие от ранее описанных инструкций таится в том, что мы будем все собирать под Visual Studio 2010 в отличие от GCC. Стоит отметить, что 2010 студия - последняя, которая поддерживается со стороны Qt 4.8.


Шаги

  1. Вам нужно где-то найти Visual Studio 2010 (я лично брал на торрентах). Причем, по моим ощущениям подойдет какая-нибудь бесплатная типа Express. Да-да, в мире винды все нужно где-то что-то искать на непонятных сайтах или торрентах полувзломанное с кейгенами и кряками.
  2. Установить ее в систему, причем используя минимальную конфигурацию, ставим только C++
  3. Стянуть Qt4.8.7 с оф сайта и установить (qt-opensource-windows-x86-vs2010-4.8.7).
  4. Стянуть и установить сразу прекомпилированный OpenSSL
  5. Проверяем: Qt должен быть установлен в C:\Qt\4.8.7, OpenSSL - C:\OpenSSL
  6. Теперь необходимо открыть Visual Studio Command Prompt из Visual Studio Tools. По сути это обычная виндовая консолька с правильно экспортнутым PATH на исхода и утлиты студии
  7. В консольке написать

    cd C:\Qt\4.8.7

  8. Ну и осталось правильно сконфигурить, указав, что мы собираемся компилировать под студию, и сослаться на исхода OpenSSL:

    configure -platform win32-msvc2010 -release -opensource -fast -nomake demos -nomake examples -no-libtiff -no-libmng -no-qt3support -qt-zlib -qt-libpng -qt-libtiff -qt-libjpeg -webkit -script -declarative -no-phonon -no-multimedia -no-vcproj -no-audio-backend -openssl-linked -I "C:\OpenSSL\include" -L "C:\OpenSSL\lib" -confirm-license

  9. Сконфигуренный проект отправить конопилироваться

    nmake

Доне.

 

 

Подробнее




Впрочем, я уже писал, как собирать для Linux, для OS X есть свои особенности в правильной конфигурации, ну и того, что Qt4 больше не поддерживается. А зря, я не использую Qt5 из-за огромного количества тянущихся библиотек, которые нужны ровным счетом для такого же приложения на Qt4. А все это выливается в тяжеловесный бандл для приложения типа Hello World.

Почему собирать? Скачанный с оф сайта готовый прекомпилированный пакет не встал в систему, все кончается какой-то ошибкой и qmake нигде нет. А сборка позволяет более тонко настроить Qt для Вашего релизного приложения, выкинуть ненужные и неиспользуемые модули и т.д. Также пацаны советуют собирать Qt с флагом -static, чтобы вообще избавиться от зависимых библиотек. К сожалению, это возможно, если вы не используете Webkit.


Шаги:

  1. Стягиваем qt-everywhere-opensource-src-4.8.7 отсюда.
  2. Убеждаемся, что у нас установлен XCode
  3. Распаковываем в хоум

    tar zxvf -C ~ qt-everywhere-opensource-src-4.8.7.tar.gz

  4. Переходим в распакованную папку. Дальше интересное: нужно поправить файл src/gui/painting/qpaintengine_mac.cpp. Видите ли, пацаны не захотели править что-то депрекейтнутое из CoreGraphics Framework. На оф багтрекере написано, мол обновляйтесь на пятерочку, будет все конопилироваться. Но не тут-то было. Нужно кое-чего поправить в этом файле:



    заменить на

  5. Чтобы модуль QtNetwork умел ходить по https, нам нужно установить и сконопелировать OpenSSL, скачиваем с оф сайта стабильные сорцы и распаковываем в удобную папку, например, в хоум. После этого необходимо собрать либы. Только есть одна особенность - QSslSocket не скомпилируется с версией SSL 1.1+, у меня отлично собралось с openssl-1.0.2j

    cd ~/Downloads
    tar zxvf -C ~ openssl-1.0.2j.tar.gz
    cd ~/openssl-1.0.2j
    ./Configure darwin64-x86_64-cc -shared
    make -j

  6. Теперь правильно сконфигурим, phonon придется выкинуть, из-за него начинаются проблемы c джойказино. Ключ -static добавляйте при необходимости статической линковки.

    export OPENSSL_LIBS='-L/usr/local/ssl/lib/ -lcrypto -lssl';
    ./configure --fast -release -nomake demos -nomake examples -no-libtiff -no-libmng -qt-libjpeg -qt-libpng -qt-zlib -no-qt3support -opensource -no-accessibility -no-stl -no-svg -declarative -script -no-phonon -v -openssl-linked -no-xmlpatterns -no-multimedia -I/usr/local/ssl/include/ -webkit -no-gtkstyle

  7. Ну и дальше как обычно

    make -j
    sudo make install

    Все добро вместе с qmake будет установлено в /usr/local/Trolltech/Qt-4.8.7/bin


 

Подробнее




Обычно я собираю Qt4 из исходов, чтобы гарантировать работу с OpenSSL (т.е. Qt по умолчанию не слинкован с OpenSSL), а также поддержку Ubuntu 10.04+ путем сборки либ под gcc-4.4.3

Последняя версия Qt4 - 4.8.7, забрать ее можно отсюда

Установка зависимостей

sudo apt install libfontconfig1-dev libfreetype6-dev libx11-dev libxcursor-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxrandr-dev libxrender-dev libssl-dev libdbus-1-dev

Сборка и установка

Необходимо распаковать архив, например, в домашнюю папку, перейти туда и сконфигурировать. Лично я использую следующие параметры, в которых модуль QtNetwork будет уже слинкован с OpenSSL, который из-за BSD лицензии не может сразу поставляться вместе с либами Qt под LGPL. Поэтому из коробки у вас не заработает https, пока вы с ней не слинкуетесь.

./configure -fast -nomake demos -nomake examples -no-libtiff -no-libmng -qt-libjpeg -qt-libpng -qt-zlib -openssl-linked -no-qt3support -opensource -no-accessibility -no-stl -no-declarative-debug -no-opengl -no-svg -confirm-license

После этого запустить саму сборку (примерно на часик) и затем установить в систему

make -j
sudo make install

Кстати, можно собирать Qt и статически с ключом -static, чтобы на выходе получался цельный бинарь, без динамически подгружаемых библиотек, однако если в вашем приложение используется Webkit, то сделать это не удастся, тк он не умеет собираться статически =(

Подробнее