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

88

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

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

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

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

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

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

smwikipedia
источник

Ответы:

201

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

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

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

  2. После завершения установки щелкните вновь созданную опцию «Оболочка MSYS2» в любом 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
    

    например

    pacman -Ss gsl
    

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

    pacman -S package_name_of_something_i_want_to_install
    

    например

    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.

rubenvb
источник
4
Благодарю. Как я могу получить каноническое имя пакета, который pacmanможет распознать?
smwikipedia
1
Будет ли это работать, если вы установите одновременно 32- и 64-битные наборы инструментов?
Полковник Паник,
2
@Colonel: да, он установит цепочки инструментов (и любые сторонние библиотеки, которые вы устанавливаете) в отдельные каталоги (/ mingw32 и / mingw64).
rubenvb
5
Большое спасибо @rubenvb. Вики-страница msys2 настолько сбивает с толку новичков, как я, тем, как делать эти несколько простых шагов.
Тоби
1
@Toby Я согласен, что они используют "Путь Арки" в объяснении вещей, т.е. прочтите вики Arch на pacman, и вы узнаете почти то же самое. Настройка новичка может быть полезна, хотя сейчас она включена в SO, которая должна появиться в Google довольно быстро :). (прочтите это как: продолжайте голосовать за этот ответ: P)
rubenvb
38

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

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

  1. Откройте оболочку MSYS2 из меню «Пуск».
  2. Бежать pacman -Sy pacman чтобы обновить базу пакетов
  3. Снова откройте оболочку, запустите pacman -Syu чтобы обновить базу данных пакетов и основные системные пакеты
  4. Снова откройте оболочку, запустите pacman -Su чтобы обновить остальные
  5. Установите компилятор:
    • Для 32-битной цели запустите pacman -S mingw-w64-i686-toolchain
    • Для 64-битной цели запустите pacman -S mingw-w64-x86_64-toolchain
  6. Выберите пакет для установки, по умолчанию все
  7. Вам также может понадобиться makeзапуститьpacman -S make
Steely Wing
источник
3
как мне установить конкретную версию MinGW-w64, например x86_64-6.2.0-release-posix-seh-rt_v5-rev1?
Youda008
1
Означает ли это, что описанный здесь установщик mingw больше не нужен? а мне просто установить msys2?
lanoxx
1
Ссылка не Referenceработает
Жан-Франсуа Т.
любые идеи о том, почему оболочка msys2 закрывается через секунду?
A_P
1
Если вам нужен cmake, вам нужно установить, pacman -S mingw-w64-x86_64-cmakeа НЕ cmake . В обычном cmake не будет генераторов для minGW.
user136036