Сборка Qt4.8.7 из исходников для OS X Sierra
Впрочем, я уже писал, как собирать для Linux, для OS X есть свои особенности в правильной конфигурации, ну и того, что Qt4 больше не поддерживается. А зря, я не использую Qt5 из-за огромного количества тянущихся библиотек, которые нужны ровным счетом для такого же приложения на Qt4. А все это выливается в тяжеловесный бандл для приложения типа Hello World.
Почему собирать? Скачанный с оф сайта готовый прекомпилированный пакет не встал в систему, все кончается какой-то ошибкой и qmake нигде нет. А сборка позволяет более тонко настроить Qt для Вашего релизного приложения, выкинуть ненужные и неиспользуемые модули и т.д. Также пацаны советуют собирать Qt с флагом -static, чтобы вообще избавиться от зависимых библиотек. К сожалению, это возможно, если вы не используете Webkit.
Шаги:
- Стягиваем qt-everywhere-opensource-src-4.8.7 отсюда.
- Убеждаемся, что у нас установлен XCode
- Распаковываем в хоум
tar zxvf -C ~ qt-everywhere-opensource-src-4.8.7.tar.gz
- Переходим в распакованную папку. Дальше интересное: нужно поправить файл src/gui/painting/qpaintengine_mac.cpp. Видите ли, пацаны не захотели править что-то депрекейтнутое из CoreGraphics Framework. На оф багтрекере написано, мол обновляйтесь на пятерочку, будет все конопилироваться. Но не тут-то было. Нужно кое-чего поправить в этом файле:
заменить на
- Чтобы модуль 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 - Теперь правильно сконфигурим, 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 - Ну и дальше как обычно
make -j
sudo make install/usr/local/Trolltech/Qt-4.8.7/bin