Como instalar o MinGW-w64 e o MSYS2?


88

Estou tentando construir uma biblioteca de código aberto. Preciso do sistema de gerenciamento de pacotes para baixar facilmente as dependências. No começo estou usando MinGW+MSYS. Mas os pacotes incluídos são limitados. Alguém me disse para usar MinGW-w64 + MSYS2.

Eu baixei a mingw-w64-installpartir de aqui . Ao ser executado, ele relata o seguinte erro. Como corrigi-lo?

insira a descrição da imagem aqui

E aliás, na MinGW-w64página de download, vejo muitos links para download. Até o Cygwin está listado. Como Cygwine MinGW-w64estão relacionados?

insira a descrição da imagem aqui

Meu entendimento atual é que, na época de MinGW+MSYS, MSYS é apenas um ótimo complemento para MinGW, enquanto em MinGW-w64 + MSYS2, MSYS2 é independente e MinGW-w64 é apenas um conjunto de bibliotecas com as quais ele pode trabalhar. Assim como o Cygwin pode baixar muitos pacotes diferentes.

Respostas:


201

Infelizmente, o instalador MinGW-w64 que você usou às vezes tem esse problema. Eu mesmo não tenho certeza sobre por que isso acontece (acho que tem algo a ver com o redirecionamento de URL do Sourceforge ou qualquer coisa que o instalador atualmente não consegue lidar de forma adequada).

De qualquer forma, se você já está planejando usar o MSYS2, não há necessidade desse instalador.

  1. Baixe o MSYS2 nesta página (escolha 32 ou 64 bits de acordo com a versão do Windows em que você vai usá-lo, e não com o tipo de executável que deseja construir, ambas as versões podem construir binários de 32 e 64 bits).

  2. Após a conclusão da instalação, clique na opção recém-criada "MSYS2 Shell" em um MSYS2 64-bitou MSYS2 32-bitno menu Iniciar. Atualize o MSYS2 de acordo com o wiki (embora eu apenas faça um pacman -Syu, ignore todos os erros e feche a janela e abra uma nova, isso não é recomendado e você deve fazer o que a página do wiki diz).

  3. Instale um conjunto de ferramentas

    a) para 32 bits:

    pacman -S mingw-w64-i686-gcc
    

    b) para 64 bits:

    pacman -S mingw-w64-x86_64-gcc
    
  4. instale quaisquer bibliotecas / ferramentas de que possa precisar. Você pode pesquisar os repositórios fazendo

    pacman -Ss name_of_something_i_want_to_install
    

    por exemplo

    pacman -Ss gsl
    

    e instale usando

    pacman -S package_name_of_something_i_want_to_install
    

    por exemplo

    pacman -S mingw-w64-x86_64-gsl
    

    e a partir de então a biblioteca GSL é automaticamente encontrada por seu compilador MinGW-w64 de 64 bits!

  5. Abra um shell MinGW-w64:

    a) Para construir coisas de 32 bits, abra o "MinGW-w64 Shell de 32 bits"

    b) Para construir coisas de 64 bits, abra o "MinGW-w64 Shell de 64 bits"

  6. Verifique se o compilador está funcionando fazendo

    gcc -v
    

Se quiser usar os conjuntos de ferramentas (com bibliotecas instaladas) fora do ambiente MSYS2, tudo o que você precisa fazer é adicionar <MSYS2 root>/mingw32/binou <MSYS2 root>/mingw64/binao seu PATH.


4
Obrigado. Como posso obter o nome canônico de um pacote que pacmanposso reconhecer?
smwikipedia

1
Funcionará se você instalar conjuntos de ferramentas de 32 e 64 bits simultaneamente?
Coronel Panic

2
@Colonel sim, ele instalará os conjuntos de ferramentas (e quaisquer bibliotecas de terceiros que você instalar) em diretórios separados (/ mingw32 e / mingw64).
rubenvb

5
Muito obrigado @rubenvb. O wiki msys2 é tão confuso para novatos como eu sobre como fazer esses poucos passos simples.
Toby

1
@Toby Concordo que eles usam "o jeito do Arch" ao explicar as coisas, ou seja, leia o wiki do Arch no pacman e você saberá quase o mesmo. Uma configuração de iniciante pode ser útil, embora agora esteja no SO, que deve aparecer no Google rapidamente :). (leia como: continue votando nesta resposta: P)
rubenvb

38

O MSYS não é atualizado há muito tempo, o MSYS2 está mais ativo, você pode fazer o download do MSYS2 , tem ambos mingwe o cygwin forkpacote.

Para instalar o conjunto de ferramentas MinGW-w64 ( Referência ):

  1. Abra o shell MSYS2 no menu inicial
  2. Execute pacman -Sy pacmanpara atualizar o banco de dados do pacote
  3. Abra novamente o shell, execute pacman -Syupara atualizar o banco de dados do pacote e os pacotes do sistema principal
  4. Reabra o shell, execute pacman -Supara atualizar o resto
  5. Instale o compilador:
    • Para destino de 32 bits, execute pacman -S mingw-w64-i686-toolchain
    • Para destino de 64 bits, execute pacman -S mingw-w64-x86_64-toolchain
  6. Selecione qual pacote instalar, o padrão é tudo
  7. Você também pode precisar make, executepacman -S make

3
como faço para instalar uma versão específica do MinGW-w64 x86_64-6.2.0-release-posix-seh-rt_v5-rev1?
Youda008

1
Isso significa que o instalador mingw descrito aqui não é mais necessário? e devo apenas instalar o msys2?
lanoxx de

1
O link Referenceestá quebrado
Jean-François T.

alguma ideia sobre por que o shell msys2 fecharia após um segundo?
A_P

1
Caso precise do cmake, você deve instalar pacman -S mingw-w64-x86_64-cmakee NÃO cmake . O cmake normal não terá geradores para minGW.
user136036 de
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.