- PVSM.RU - https://www.pvsm.ru -
Как Вы возможно знаете на территории РФ более недоступен Qt. Также в этот момент мне потребовалось реализовать кросс-компиляцию своего проекта под разные ОС. В ходе реализации кросс-компиляции обнаружилось, что можно совершенно легально использовать Qt, да еще и реализовать кросс-компиляцию.
Используя метод проб и ошибок выяснилось, что наиболее хорошо подходит для данных целей Windows 11, т.к. под него есть X Server, причем абсолютно бесплатный. Также не может не радовать скорость работы WSL2 под данной ОС. Итак, не буду томить - переходим к реализации.
Сразу оговорюсь, речь идет про системы на x64 архитектуре (Intel/AMD). На ARM тоже можно, но работоспособность не гарантируется.
Сперва рекомендую активировать WSL2, для этого можно выполнить команды PowerShell (напоминаю, что нужно запускать его от имени Администратора):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Также скачаем и установим сам WSL2 с официального сайта Microsoft [1]
После выполненных действий рекомендую перезагрузить PC, т.к. изменения серьезные.
Сделаем WSL2 основным WSL через PowerShell
wsl --set-default-version 2
Теперь можем установить Ubuntu из Windows Store [2]
После запускаем и устанавливаем Ubuntu (данный процесс можете загуглить - там нет ничего сложного)
Затем поставим X Server, благодаря которой мы сможем запускать графические приложения Linux на Windows. Ссылка на Windows Store [3]
Запустите Windows Subsystem for Linux (X Server) и дождитесь появления ввода окна команд - это требуется, чтоб X Server прописал все зависимости.
Ещё раз перезагрузим PC, т.к. опять же были внесены крупные изменения.
После перезагрузки открываем 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
Да, вы уже можете писать приложения под 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
Автор: Alrott SlimRG
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/375792
Ссылки в тексте:
[1] официального сайта Microsoft: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
[2] Ubuntu из Windows Store: https://apps.microsoft.com/store/detail/ubuntu/9PDXGNCFSCZV
[3] Ссылка на Windows Store: https://apps.microsoft.com/store/detail/windows-subsystem-for-linux-preview/9P9TQF7MRM4R
[4] Источник: https://habr.com/ru/post/669552/?utm_source=habrahabr&utm_medium=rss&utm_campaign=669552
Нажмите здесь для печати.