Блог :. Сборка Qt4.8.7 из исходников для OS X Sierra

Сборка Qt4.8.7 из исходников для OS X Sierra

12 Янв, 2017

Впрочем, я уже писал, как собирать для 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