MinGW не тестируется как часть процесса CI репозитория vcpkg, поэтому регрессии могут возникать в рамках обновлений библиотеки. Повышение поддержки PR приветствуется!
Mingw-w64 community triplets
vcpkg включает x64, x86, arm64 и arm community triplets для Mingw-w64. Они не зависят от Visual Studio и могут использоваться изначально в Windows, а также для перекрестной компиляции в других операционных системах. Существует два варианта каждого триплета, выбор между статическим и динамическим связыванием. Предполагается, что фактические средства (g++ и т. д.) будут называться с определенными префиксами.
Архитектура
Vcpkg community triplets
Префикс имени средства
x64
x64-mingw-dynamic, x64-mingw-static
x86_64-w64-mingw32-
x86
x86-mingw-dynamic, x86-mingw-static
i686-w64-mingw32-
arm64
arm64-mingw-dynamic, arm64-mingw-static
aarch64-w64-mingw32-
arm
arm-mingw-dynamic, arm-mingw-static
armv7-w64-mingw32-
Эти тройные значения не проверяются непрерывной интеграцией, поэтому многие порты не создаются, и даже существующие порты могут прерывать обновления портов.
Из-за этого участие сообщества имеет первостепенное значение!
Использование Mingw-w64 в Windows в собственном коде
С помощью MSYS2 можно легко создать полную среду для создания портов с помощью Mingw-w64 на компьютере с Windows.
При создании программного обеспечения для собственных сред windows необходимо использовать подсистему mingw MSYS2 и установить некоторые пакеты (с определенным префиксом) для этой подсистемы.
архитектура
vcpkg triplets
подсистема
Префикс пакета
x64
x64-mingw-dynamic, x64-mingw-static
mingw64
mingw-w64-x86_64-
x86
x86-mingw-dynamic, x86-mingw-static
mingw32
mingw-w64-i686-
После базовой установки MSYS2 необходимо установить несколько дополнительных пакетов для разработки программного обеспечения, например для x64:
Активная подсистема выбирается путем запуска приложения MSYS2 MinGW или изменения в работающем терминале.
source shell mingw64 # for x64, or "mingw32" for x86
Начальная загрузка vcpkg должна выполняться путем запуска bootstrap-vcpkg.bat. Эта команда скачайте официальный файл vcpkg.exe.
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.bat
Для создания пакетов необходимо сообщить vcpkg, что вы хотите использовать mingw triplet. Это можно сделать разными способами. Если Visual Studio не установлен, необходимо также задать для узла триплет для mingw. Это необходимо для разрешения зависимостей узла. Для удобства можно использовать переменные среды для задания обоих триплетов:
Проект MSYS2 явным образом предупреждает , что "сочетание программ из других установок MSYS2, установок Cygwin, цепочки инструментов компилятора или даже другие программы не поддерживаются и, вероятно, прерывают вещи неожиданными способами". Например, правильная передача аргументов командной строки с кавыками и экранированием может завершиться ошибкой.
Но порты vcpkg неявно создают установки MSYS2, например для различных других средств сборки, необходимых для pkg-config работы с пакетами на основе autoconf. В частности, при подготовке портов к PATH переменной среды каталог средств может измениться, какое средство с определенным именем вызывается, и как аргументы передаются между инструментами.
Чтобы устранить такие проблемы при работе с полной установкой MSYS2, попробуйте сохранить каталоги подсистемы msys (/usr/bin, bin) вне PATH переменной среды, как показано vcpkg. В bash можно изменить PATH только один вызов vcpkg:
Кроме того, вы можете запустить vcpkg из обычной командной строки, добавив в него PATHтолько нужный каталог mingw (например, C:\msys64\mingw64\bin).
При использовании vcpkg для CI со стандартными образами в Azure Pipelines, Github Actions или аналогичном по умолчанию PATH могут содержаться дополнительные каталоги, которые создают сочетание программ MSYS2 из разных установок. Вы можете задать нужные PATH каталоги вручную или удалить каталоги, содержащие sh.exe, bash.exemsys-2.0.dll или cygwin1.dll.
Использование Mingw-w64 для создания программ Windows в других системах
Вы можете использовать vcpkg mingw community triplets с цепочками инструментов на компьютерах, отличных от Windows, для перекрестной компиляции программного обеспечения для запуска в Windows. Многие дистрибутивы Linux предлагают такие цепочки инструментов в необязательных пакетах с суффиксом mingw-w64 или префиксом. Например, для дистрибутивов на основе Debian вы начнете с этой команды установки для цепочки инструментов x64:
Упакованные версии цепочки инструментов Mingw-w64 в дистрибутивах Linux могут быть более старыми выпусками, которые не имеют некоторых полезных функций или исправлений ошибок. Альтернативная независимая цепочка инструментов предлагается MXE.
Для загрузки vcpkg клонируйте репозиторий bootstrap-vcpkg.sh github и запустите скрипт:
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg install zlib:x64-mingw-dynamic
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о vcpkg
vcpkg — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
В этом модуле вы узнаете, как использовать подсистема Windows для Linux (WSL) с Visual Studio Code (VS Code). Мы рассмотрим процесс установки и основы использования WSL. Кроме того, мы устанавливаем и используем расширение WSL Visual Studio Code. Наконец, мы покажем, как отлаживать и запускать код Python в VS Code в нашей среде WSL.