Кросс-компиляция Qt в России

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Предисловие

Как Вы возможно знаете на территории РФ более недоступен Qt. Также в этот момент мне потребовалось реализовать кросс-компиляцию своего проекта под разные ОС. В ходе реализации кросс-компиляции обнаружилось, что можно совершенно легально использовать Qt, да еще и реализовать кросс-компиляцию.

Windows 11

Используя метод проб и ошибок выяснилось, что наиболее хорошо подходит для данных целей Windows 11, т.к. под него есть X Server, причем абсолютно бесплатный. Также не может не радовать скорость работы WSL2 под данной ОС. Итак, не буду томить - переходим к реализации.

Установка WSL2 + X Server

Сразу оговорюсь, речь идет про системы на x64 архитектуре (Intel/AMD). На ARM тоже можно, но работоспособность не гарантируется.

Сперва рекомендую активировать WSL2, для этого можно выполнить команды PowerShell (напоминаю, что нужно запускать его от имени Администратора):

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Также скачаем и установим сам WSL2 с официального сайта Microsoft

После выполненных действий рекомендую перезагрузить PC, т.к. изменения серьезные.

Сделаем WSL2 основным WSL через PowerShell

wsl --set-default-version 2

Теперь можем установить Ubuntu из Windows Store
После запускаем и устанавливаем Ubuntu (данный процесс можете загуглить - там нет ничего сложного)

Затем поставим X Server, благодаря которой мы сможем запускать графические приложения Linux на Windows. Ссылка на Windows Store

Запустите Windows Subsystem for Linux (X Server) и дождитесь появления ввода окна команд - это требуется, чтоб X Server прописал все зависимости.

Ещё раз перезагрузим PC, т.к. опять же были внесены крупные изменения.

Установка Qt Creator

После перезагрузки открываем Windows Subsystem for Linux (X Server) и ждем появления окна ввода команд.

Активируем root доступ (да, можно все делать через sudo, но для новичков так проще)

sudo su

После устанавливаем Qt

apt-get update && apt-get install build-essential qt5-default qtcreator qtbase5-examples qtdeclarative5-examples git mesa-common-dev -y

(Код длинный, поэтому лучше копировать через Ctrl+A, Ctrl+C)

Выходим из root и запускаем Qt Creator

exit
qtcreator

Установка кросс-компилятора MXE

Да, вы уже можете писать приложения под Qt. Но все же они будут работать из под Linux. Чтобы иметь возможность компилировать под Windows - нужен кросс-компилятор.

Откроем Ubuntu терминал и скачаем MXE:

git clone https://github.com/mxe/mxe.git

Установим необходимые пакеты:

sudo apt-get update && sudo apt-get install autoconf automake autopoint bash bison bzip2 flex g++ g++-multilib gettext git gperf intltool libc6-dev-i386 libgdk-pixbuf2.0-dev libltdl-dev libssl-dev libtool-bin libxml-parser-perl lzip make openssl p7zip-full patch perl python3 python3-mako ruby sed unzip wget xz-utils python-is-python3 g++-multilib libc6-dev-i386 texinfo wine -y

(Код длинный, поэтому лучше копировать через Ctrl+A, Ctrl+C)

Перейдем в директорию mxe

cd mxe

И запускаем сборку x86 версии (можете пойти попить чайку - это займет 2-3 часа)

make qt5

И запускаем сборку x64 версии (можете пойти попить чайку - это займет 2-3 часа)

make MXE_TARGETS=x86_64-w64-mingw32.static qt5

После сборки - привязываем Qt к сборкам, аналогично как если бы была статическая компиляция.

Пути к сборкам: <mxe root>/usr/bin/<Build architecture>

Подробнее о привязке - можете посмотреть видео с YouTube (специально начало пропустил до привязки - по времени 16:12)

Итог

В итоге получим систему кросс-компиляции под Linux и Windows. А также совершенно легально (без VPN и прочем мути) установленный Qt Creator.

Послесловие

Изначально делал для себя, но метод очень понравился, поэтому решил поделиться. Если есть вопросы/предложения - пишите комментарии.

Спасибо за внимание!

С уважением,

Alrott SlimRG

Источник: https://habr.com/ru/post/669552/


Интересные статьи

Интересные статьи

Цифровая экономика Китая в значительной степени связана с цифровыми услугами и включает в себя облачные вычисления, ИИ, блокчейн и аналитику данных для получения наилучших эффектов в бизнесе, управлен...
В этой статье я написал основные вещи, о которых думаю последнюю неделю: какие риски несут текущие события для финансового положения, и как их можно минимизировать. На Habr – только практическая часть...
На Хабре время от времени появляются статьи про различные веб-сервисы и приложения, так или иначе анализирующие городскую среду. Такие сервисы, по задумке авторов, должны помогать жителям принимать ка...
Привет, Хабр. Меня зовут Алексей Кнорре, и я криминолог, аспирант в UPenn и аффилированный научный сотрудник в ЕУСПб. Подумал, что сейчас, после месяцев карантина, самое время расс...
Компании переполнили рынок товаров и услуг предложениями. Разнообразие наблюдается не только в офлайне, но и в интернете. Достаточно вбить в поисковик любой запрос, чтобы получить подтверждение насыще...