c:/opt/MSYS64
, что позволит устанавливать в единый каталог c:/opt/ и другие пакеты, например, Python и Qt.pacman -Syu
Справка по параметрам pacman'а доступна по ссылке.
pacman -Syu
При проблемах с доступом к тому или иному зеркалу репозитория программ можно отредактировать список зеркал в файлах /etc/pacman.d/mirrorlist.*
pacman -Ss <package_name>
pacman -S <package_name>
c:/opt/python/v3.xy
~/.bashrc
пути до исполняемого файла Python и каталога Scripts export PATH="/c/opt/Python/v3.12:/c/opt/Python/v3.12/Scripts:$PATH"
C:\opt\Python\v3.12 C:\opt\Python\v3.12\Scripts
Установка библиотеки Qt c помощью aqtinstall.
pip install -U pip pip install aqtinstall
aqt list-qt windows desktop
Долгое ожидание и получение ошибки вида ERROR : Failed to download checksum for the file 'Updates.xml' from mirrors '['https://download.qt.io']
говорит о том, что доступ к скачиванию скорее всего запрещён по ip адресу. Для решения проблемы необходимо либо изменить запрашиваемое зеркало в настройках программы, либо производить запросы с иного ip адреса. Также на Хабре представлено решение с использованием зеркал Яндекса:
[aqt] baseurl: https://qt-mirror.dannhauer.de/ [requests] max_retries_on_checksum_error: 1 max_retries_to_retrieve_hash: 1 INSECURE_NOT_FOR_PRODUCTION_ignore_hash: True [mirrors] fallbacks: https://mirrors.ocf.berkeley.edu/qt https://qt.mirror.constant.com/ https://ftp.acc.umu.se/mirror/qt.io/qtproject/ https://qtproject.mirror.liquidtelecom.com/ https://ftp.jaist.ac.jp/pub/qtproject http://ftp1.nluug.nl/languages/qt https://mirrors.dotsrc.org/qtproject https://mirror.yandex.ru/mirrors/qt.io
В данном случае программу запускать следующим образом
aqt -c aqt.cfg ...
aqt list-qt windows desktop --arch 6.6.2
win64_mingw win64_msvc2019_64 win64_msvc2019_arm64 wasm_singlethread wasm_multithread
aqt install-qt windows desktop 6.6.2 win64_mingw -m all --outputdir /c/opt/Qt
~/.bashrc
export SETUPTOOLS_USE_DISTUTILS=stdlib
В противном случае возможно появление ошибки VC6.0 is not supported
export PATH="/c/opt/Qt/6.6.2/mingw_64/bin:$PATH"
Установка из исходного кода
Проблема
Идея состоит в том, чтобы использовать статическую линковку стандартных библиотек в создаваемой программе. Тогда её распространение не потребует наличия библиотек MinGW. Всё хорошо работает для программ, не использующих внешние библиотеки. Однако, если подключить внешние библиотеки, то уже им требуются стандартные библиотеки и программа не работает. Для решения этой проблемы необходимо скомпилировать библиотеку Qt c параметрами -static-libgcc -static-libstdc++
.
Инструкция по сборке доступна по ссылке.
export PATH="/c/opt/Node.js:$PATH"
pip install html5lib
В среде MSYS2 задать переменную в которых python ищет модули:
export PYTHONPATH="/c/opt/Python/v3.12/lib/site-packages"
pacman -S gperf
pacman -S bison
pacman -S flex
git clone --branch llvmorg-18.1.2 https://github.com/llvm/llvm-project.git source cd source
Список релизов доступен по ссылке.
mkdir build cd build cmake ../llvm -G Ninja -DLLVM_ENABLE_PROJECTS=clang -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=c:\opt\LLVM\release ninja -j8
ninja -j8 check-all
c:\opt\LLVM\release
:ninja install
llvm-config
, которая используется для получения основных каталогов Clangexport PATH="$PATH:/c/opt/LLVM/release/bin"
Также, чтобы сборка не была ограничена средой MSYS2, в системную переменную Path необходимо добавить каталог C:\opt\LLVM\release\bin
.
git clone git://code.qt.io/qt/qt5.git src
cd src git switch 6.6.2
perl init-repository
mkdir build cd build ../configure -cmake-generator Ninja -prefix /opt/Qt/6.6.2/mingw_64-libstd-static -qt-zlib -qt-libb2 -no-zstd
-qt-zlib
, -qt-libb2
, –no-zstd
. Подробности по ссылке.build/config.summary
.CMakeCache.txt
из каталога build
. cmake --build . --parallel cmake --install .
pacman -S mingw-w64-ucrt-x86_64-toolchain
Будет предложено установить следующие пакеты:
- mingw-w64-ucrt-x86_64-binutils - mingw-w64-ucrt-x86_64-crt-git - mingw-w64-ucrt-x86_64-gcc - mingw-w64-ucrt-x86_64-gdb - mingw-w64-ucrt-x86_64-gdb-multiarch - mingw-w64-ucrt-x86_64-headers-git - mingw-w64-ucrt-x86_64-libmangle-git - mingw-w64-ucrt-x86_64-libwinpthread-git - mingw-w64-ucrt-x86_64-make - mingw-w64-ucrt-x86_64-pkgconf - mingw-w64-ucrt-x86_64-tools-git - mingw-w64-ucrt-x86_64-winpthreads-git - mingw-w64-ucrt-x86_64-winstorecompat-git
make
и cmake
:pacman -S make
pacman -S cmake
При необходимости изменить генератор cmake, используемый по умолчанию, необходимо в файле /.bashrc
установить соответствующую переменную среды:
export CMAKE_GENERATOR="MSYS Makefiles"
Для статической сборки стандартных библиотек C/C++ и библиотеки libwinpthread из MinGW необходимо установить некоторые параметры линковщика (подробности по ссылке):
export LDFLAGS="-static-libgcc -static-libstdc++ -Wl,-Bstatic,--whole-archive -lwinpthread -Wl,-Bdynamic,--no-whole-archive"
~/.bashrc
путь до исполняемых файлов компилятора:export PATH="/c/opt/MSYS64/mingw64/bin:$PATH"
C:\msys64\mingw64\bin
pacman -S git
Для развёртывания приложения в операционной системе Windows служит утилита windeployqt
, которая копирует необходимые для работы приложения библиотеки из Qt и рантайма компилятора:
windeployqt application.exe
В случае, если рантайм компилятора не требуется, то используется параметр -no-compiler-runtime
:
windeployqt application.exe -no-compiler-runtime
Подробности по ссылке https://doc.qt.io/qt-6/windows-deployment.html