Як встановити MinGW-w64 та MSYS2?


86

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

Я скачав mingw-w64-installз тут . При запуску він повідомляє про таку помилку. Як це виправити?

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

До речі, на MinGW-w64сторінці завантаження я бачу багато посилань для завантаження. Навіть Сайґвін у списку. Як Cygwinі MinGW-w64пов’язані?

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

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

Відповіді:


197

На жаль, інсталятор MinGW-w64, який ви використовували, іноді має цю проблему. Я сам не впевнений, чому це трапляється (я думаю, це пов’язано із перенаправленням URL-адреси Sourceforge або тим, що зараз установка не може обробити достатньо належним чином).

У будь-якому випадку, якщо ви вже плануєте використовувати MSYS2, цей інсталятор не потрібен.

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

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

  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"

    b) Щоб створити 64-розрядні речі, відкрийте "64-розрядну оболонку MinGW-w64"

  6. Переконайтесь, що компілятор працює, виконуючи

    gcc -v
    

Якщо ви хочете використовувати ланцюжки інструментів (із встановленими бібліотеками) поза середовищем MSYS2, все, що вам потрібно зробити, це додати <MSYS2 root>/mingw32/binабо <MSYS2 root>/mingw64/binдо вашого PATH.


4
Дякую. Як я можу отримати канонічну назву пакета, який pacmanможе розпізнати?
smwikipedia

1
Чи спрацює це, якщо ви встановите одночасно 32 та 64-бітні ланцюжки інструментів?
Colonel Panic

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

3
як встановити конкретну версію MinGW-w64, як x86_64-6.2.0-release-posix-seh-rt_v5-rev1?
Youda008

1
Чи означає це, що програма встановлення mingw, як описано тут, більше не потрібна? і мені слід просто встановити msys2?
lanoxx

1
Посилання Referenceрозірвано
Жан-Франсуа Т.

будь-які ідеї щодо того, чому оболонка msys2 закриється через секунду?
A_P

Якщо вам потрібен cmake, вам доведеться встановити, pacman -S mingw-w64-x86_64-cmakeа НЕ cmake . Звичайний cmake не матиме генераторів для minGW.
user136036
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.