Как установить MinGW-w64 и MSYS2?

Я пытаюсь создать библиотеку с открытым исходным кодом. Мне нужна система управления пакетами, чтобы легко загружать зависимости. Сначала я использую MinGW+MSYS. Но включенные пакеты ограничены. Кто-то сказал мне использовать MinGW-w64 + MSYS2.

Я загрузил mingw-w64-install с здесь. При запуске выдает следующую ошибку. Как это исправить?

введите описание изображения здесь

И, кстати, на MinGW-w64 странице загрузки я вижу много ссылок для загрузки. В списке значится даже Cygwin. Как Cygwin и MinGW-w64 связаны?

введите описание изображения здесь

В настоящее время я понимаю, что во времена MinGW+MSYS MSYS - это просто хорошее дополнение к MinGW, в то время как в MinGW-w64 + MSYS2 MSYS2 является автономным, а MinGW-w64 - просто набором библиотек, с которыми он может работать. Так же, как Cygwin может загружать много разных пакетов.


person smwikipedia    schedule 06.05.2015    source источник


Ответы (2)


К сожалению, у установщика MinGW-w64, который вы использовали, иногда возникает эта проблема. Я сам не уверен, почему это происходит (я думаю, что это как-то связано с перенаправлением URL-адресов Sourceforge или чем-то еще, с чем установщик в настоящее время не может справиться должным образом).

В любом случае, если вы уже планируете использовать MSYS2, этот установщик не нужен.

  1. Загрузите MSYS2 с этой страницы (выберите 32-разрядную или 64-разрядную версию в зависимости от того, какую версию Windows вы собираетесь использовать. на, а не на том, какие исполняемые файлы вы хотите создать, обе версии могут создавать как 32-разрядные, так и 64-разрядные двоичные файлы).

  2. После завершения установки щелкните только что созданную опцию «MSYS2 Shell» в MSYS2 64-bit или MSYS2 32-bit в меню «Пуск». Обновите MSYS2 в соответствии с вики (хотя я просто делаю pacman -Syu, игнорирую все ошибки, закрываю окно и открываю новое, это не рекомендуется, и вы должны делать то, что написано на странице вики).

  3. Установить набор инструментов

    а) для 32-битных:

    pacman -S mingw-w64-i686-gcc
    

    б) для 64-битных:

    pacman -S mingw-w64-x86_64-gcc
    
  4. установите любые библиотеки / инструменты, которые могут вам понадобиться. Вы можете искать в репозиториях, выполнив

    pacman -Ss name_of_something_i_want_to_install
    

    e.g.

    pacman -Ss gsl
    

    и установить с помощью

    pacman -S package_name_of_something_i_want_to_install
    

    e.g.

    pacman -S mingw-w64-x86_64-gsl
    

    и с этого момента библиотека GSL будет автоматически найдена вашим 64-битным компилятором MinGW-w64!

  5. Откройте оболочку MinGW-w64:

    а) Чтобы собрать 32-битные вещи, откройте «32-битную оболочку MinGW-w64»

    б) Для сборки 64-битных вещей откройте «64-битную оболочку MinGW-w64».

  6. Убедитесь, что компилятор работает, выполнив

    gcc -v
    

Если вы хотите использовать цепочки инструментов (с установленными библиотеками) вне среды MSYS2, все, что вам нужно сделать, это добавить <MSYS2 root>/mingw32/bin или <MSYS2 root>/mingw64/bin в свой PATH.

person rubenvb    schedule 06.05.2015
comment
Спасибо. Как я могу получить каноническое имя пакета, которое pacman может распознать? - person smwikipedia; 06.05.2015
comment
Будет ли это работать, если вы установите одновременно 32- и 64-битные наборы инструментов? - person Colonel Panic; 28.09.2015
comment
@Colonel: да, он установит цепочки инструментов (и любые сторонние библиотеки, которые вы устанавливаете) в отдельные каталоги (/ mingw32 и / mingw64). - person rubenvb; 29.09.2015
comment
Для использования в оболочке MSYS2 мне нужно было сделать: PATH = / mingw64 / bin: $ PATH - person Nick Westgate; 31.03.2016
comment
Большое спасибо @rubenvb. Вики-сайт msys2 настолько сбивает с толку новичков, как я, о том, как делать эти несколько простых шагов. - person Toby; 06.05.2016
comment
@Toby Я согласен, что они используют Arch Way в объяснении вещей, то есть прочитайте Arch wiki на pacman, и вы узнаете почти то же самое. Настройка новичка может быть полезна, хотя сейчас она включена в SO, которая должна появиться в Google довольно быстро :). (прочтите это как: продолжайте голосовать за этот ответ: P) - person rubenvb; 06.05.2016
comment
Чтение документации pacman заняло у меня около получаса, чтобы понять, как на самом деле устанавливать вещи, а не просто перечислять их, LOL - гораздо больше привык к yum или apt-get! - person Toby; 06.05.2016
comment
@Toby вам необходимо поработать над своими навыками чтения: wiki.archlinux.org/index.php /. - person rubenvb; 06.05.2016
comment
@rubenvb Ах, это действительно проще! Я смотрел archlinux.org/pacman/pacman.8.html - person Toby; 06.05.2016
comment
Использование pacman для установки mingw-w64 - отличный совет. Я столкнулся с той же проблемой при попытке установить mingw-w64 через прокси. Сначала установка MSYS2, установка переменных среды для прокси, например superuser.com/questions/713582/, и следование вашему ответу работает отлично. - person francis; 19.08.2016
comment
Большое спасибо за этот пост - он должен серьезно заменить руководства по компиляции Windows. Есть ли что-нибудь, что вы можете добавить к кросс-компиляции? При использовании MSYS2 и следовании руководству возникают проблемы с использованием --cross-prefix = i686-w64-mingw32-. Возможно, в этом нет необходимости с учетом того, как MSYS2 устанавливает gcc, и вместо этого полагается на порядок переменных среды, указанный в PATH? - person ajbeaven; 12.03.2017
comment
Если вам нужен cmake, вы должны установить pacman -S mingw-w64-x86_64-cmake и НЕ cmake. В обычном cmake не будет генераторов для minGW. - person user136036; 15.01.2020
comment
Что касается шага 5. (Откройте оболочку MinGW-w64): Когда инструменты устанавливаются с помощью диспетчера пакетов Chocolatey, оболочку необходимо открывать вручную из каталога C:\tools\msys64 - person k_o_; 27.05.2020
comment
Помните, что этой инструкции недостаточно, чтобы std::thread и std::mutex работали в MinGW. Дополнительную информацию см. здесь. - person rustyx; 28.10.2020
comment
Можно ли установить mingW-w64 ОТДЕЛЬНО с помощью установочного файла mingw-w64, а затем установить MSYS2 через его установщик x86_64? - person ; 13.11.2020
comment
@Valsak да, это возможно (MSYS2 MinGW-w64 x86_64 GCC - это набор инструментов для собственного компилятора, как и любой другой). Только не устанавливайте отдельную установку MinGW-w64 внутри дерева MSYS2, иначе вы испортите отслеживание файлов MSYS2. Установив отдельный набор инструментов, вам будет легче придерживаться определенной версии GCC, но вы потеряете удобство обновления всего в целом. - person rubenvb; 15.11.2020

MSYS давно не обновлялся, MSYS2 более активен, можно скачать с MSYS2, в нем есть и то, и другое mingw и cygwin fork пакет.

Чтобы установить набор инструментов MinGW-w64 (Справочник):

  1. Откройте оболочку MSYS2 из меню «Пуск».
  2. Запустите pacman -Sy pacman, чтобы обновить базу данных пакетов
  3. Снова откройте оболочку, запустите pacman -Syu, чтобы обновить базу данных пакетов и основные системные пакеты.
  4. Снова откройте оболочку, запустите pacman -Su, чтобы обновить остальные
  5. Install compiler:
    • For 32-bit target, run pacman -S mingw-w64-i686-toolchain
    • Для 64-битной цели запустите pacman -S mingw-w64-x86_64-toolchain
  6. Выберите, какой пакет установить, по умолчанию все
  7. Также может понадобиться make, запустите pacman -S make
person Steely Wing    schedule 25.11.2016
comment
как установить конкретную версию MinGW-w64, например x86_64-6.2.0-release-posix-seh-rt_v5-rev1? - person Youda008; 08.12.2016
comment
Означает ли это, что установщик mingw, описанный здесь, больше не нужен? а мне просто установить msys2? - person lanoxx; 17.02.2017
comment
Ссылка Reference не работает - person Jean-Francois T.; 11.09.2017
comment
любые идеи о том, почему оболочка msys2 закрывается через секунду? - person A_P; 10.05.2019
comment
Если вам нужен cmake, вы должны установить pacman -S mingw-w64-x86_64-cmake и НЕ cmake. В обычном cmake не будет генераторов для minGW. - person user136036; 15.01.2020
comment
Важное примечание - при использовании команд обновления pacman может отображаться сообщение о принудительном закрытии окна - важно действительно подчиняться сообщению - person M.M; 09.03.2020