Esta é a minha compreensão da relação entre MinGW e MSYS.
Ao instalar o MinGW e sua toolchain gcc , a instalação do MSYS é opcional.
Com o MSYS instalado, você obtém bash e algumas outras ferramentas que eu suponho devem ser usadas com o MinGW gcc que você acabou de instalar. No entanto, quando você executa o script em lotes MSYS que abre um bash shell, gcc não está no seu PATH . Neste ponto, você faz uma das duas coisas:
gcc na categoria MSYS. Você pensa: "Eu já não instalei o gcc?" Você espera que o pacote seja baixado e retorna ao shell bash do MSYS. Você corre gcc --version e vê que é uma versão antiga de gcc de dez anos atrás. Você então faz a coisa abaixo, se perceber que é uma opção. OR
echo $PATH , para descobrir que C:\MinGW\bin está em seu caminho, mas C:\MinGW\bin não está montado. Você adiciona o comando mount adequado ao seu ~/.profile e fica feliz em descobrir que a versão recente do gcc fornecida pelo MinGW agora está no seu PATH . Por que MinGW e MSYS têm versões separadas de gcc ? Por que o usuário não tem acesso à versão recente do gcc fornecida pelo MinGW imediatamente dentro do MSYS? Eu não uso o Windows com muita freqüência, e eu estava tentando usar MinGW e MSYS para ensinar meu irmão C. Eu não queria estar usando uma versão do gcc de dez anos atrás. Esse comportamento foi desconcertante.