MSYS2: это среда Windows или Unix?

Меня смущает окружающая среда. Используя MSYS2 под Windows, я хочу собрать, скажем, библиотеку boost:

http://www.boost.org/users/history/version_1_64_0.html

Какой файл мне нужно скачать? Один для Windows или один для Unix?


person Mark    schedule 20.04.2017    source источник


Ответы (1)


MSYS2 — это не среда Unix. Это гибридная среда, состоящая из следующих основных компонентов:

  1. Слой эмуляции POSIX, называемый msys-2.0.dll, является ответвлением cygwin.
  2. Такие инструменты, как GNU Make, Bash и ls, зависящие от среды выполнения msys-2.0.dll.
  3. pacman, еще одна программа msys-2.0.dll, позволяющая устанавливать предварительно скомпилированные пакеты от разработчиков MSYS2.
  4. Собственное программное обеспечение Windows, которое находится в каталогах /mingw32 (для 32-разрядной версии) и /mingw64 (для 64-разрядной версии).

В любом случае, похоже, что вы только начинаете работать с MSYS2 и мало о нем знаете. Если ваша цель — написать собственное программное обеспечение для Windows, которое когда-нибудь можно будет использовать вне MSYS2, вам следует установить родную версию Boost для Windows, предоставленную разработчиками MSYS2. Итак, запустите одну из приведенных ниже команд:

pacman -S mingw-w64-i686-boost

or

pacman -S mingw-w64-x86_64-boost

Затем убедитесь, что вы используете правильный вариант оболочки MSYS2, и убедитесь, что вы установили соответствующий набор инструментов GCC. Для 32-разрядной разработки необходимо запустить MSYS2 с помощью ярлыка «32-разрядная оболочка MinGW-w64» и использовать pacman для установки mingw-w64-i686-toolchain (pacman -S mingw-w64-i686-toolchain).

Если вы попытаетесь загрузить бинарные файлы с веб-сайта Boost, вы, скорее всего, столкнетесь со всевозможными проблемами совместимости. Лучше использовать программное обеспечение, созданное с помощью цепочки инструментов MSYS2 GCC, особенно если в MSYS2 уже есть пакет для этого программного обеспечения.

person David Grayson    schedule 20.04.2017
comment
Спасибо за ясное объяснение! На самом деле у меня есть проект Makefile C++, который компилируется с помощью i686-w64-mingw32. Мне нужно добавить к нему SignalR клиента. Создавая его зависимости, я должен скомпилировать cpprestsdk, но у меня есть некоторые проблемы с boost (см. >). Поэтому я тоже пытался скомпилировать его из исходников. - person Mark; 20.04.2017
comment
Разработчики MSYS2 компилируют boost из исходного кода с помощью этого скрипта: github.com /Alexux/MINGW-packages/tree/master/mingw-w64-boost - person David Grayson; 20.04.2017