¿Cómo instalar MinGW-w64 y MSYS2?

85

Estoy intentando crear una biblioteca de código abierto. Necesito un sistema de gestión de paquetes para descargar fácilmente las dependencias. Al principio estoy usando MinGW+MSYS. Pero los paquetes incluidos son limitados. Alguien me dijo que usara MinGW-w64 + MSYS2.

Descargué el mingw-w64-installde aquí . Cuando se ejecuta, informa el siguiente error. ¿Como arreglarlo?

ingrese la descripción de la imagen aquí

Y por cierto, desde la MinGW-w64página de descarga, veo muchos enlaces de descarga. Incluso Cygwin aparece en la lista. ¿Cómo Cygwiny MinGW-w64están relacionados?

ingrese la descripción de la imagen aquí

Mi conocimiento actual es que, en el momento de MinGW+MSYS, MSYS es solo un buen complemento para MinGW, mientras que MinGW-w64 + MSYS2, MSYS2 es independiente y MinGW-w64 es solo un conjunto de bibliotecas con las que puede trabajar. Al igual que Cygwin puede descargar muchos paquetes diferentes.

smwikipedia
fuente

Respuestas:

197

Desafortunadamente, el instalador de MinGW-w64 que usó a veces tiene este problema. Yo mismo no estoy seguro de por qué sucede esto (creo que tiene algo que ver con la redirección de URL de Sourceforge o lo que sea que el instalador actualmente no pueda manejar adecuadamente).

De todos modos, si ya está planeando usar MSYS2, no es necesario ese instalador.

  1. Descargue MSYS2 desde esta página (elija 32 o 64 bits según la versión de Windows en la que lo vaya a utilizar, no el tipo de ejecutables que desee construir, ambas versiones pueden construir binarios de 32 y 64 bits).

  2. Una vez completada la instalación, haga clic en la opción "MSYS2 Shell" recién creada en MSYS2 64-bito MSYS2 32-biten el menú Inicio. Actualice MSYS2 de acuerdo con la wiki (aunque solo hago una pacman -Syu, ignoro todos los errores y cierro la ventana y abro una nueva, esto no se recomienda y debe hacer lo que dice la página de la wiki).

  3. Instalar una cadena de herramientas

    a) para 32 bits:

    pacman -S mingw-w64-i686-gcc
    

    b) para 64 bits:

    pacman -S mingw-w64-x86_64-gcc
    
  4. instale las bibliotecas / herramientas que pueda necesitar. Puede buscar en los repositorios haciendo

    pacman -Ss name_of_something_i_want_to_install
    

    p.ej

    pacman -Ss gsl
    

    e instalar usando

    pacman -S package_name_of_something_i_want_to_install
    

    p.ej

    pacman -S mingw-w64-x86_64-gsl
    

    y a partir de ese momento, el compilador MinGW-w64 de 64 bits encuentra automáticamente la biblioteca GSL.

  5. Abra un shell MinGW-w64:

    a) Para construir cosas de 32 bits, abra el "Shell MinGW-w64 de 32 bits"

    b) Para construir cosas de 64 bits, abra el "MinGW-w64 64-bit Shell"

  6. Verifique que el compilador esté funcionando haciendo

    gcc -v
    

Si desea utilizar las cadenas de herramientas (con bibliotecas instaladas) fuera del entorno MSYS2, todo lo que necesita hacer es agregar <MSYS2 root>/mingw32/bino <MSYS2 root>/mingw64/bina su PATH.

rubenvb
fuente
4
Gracias. ¿Cómo puedo obtener el nombre canónico de un paquete que pacmanpueda reconocer?
smwikipedia
1
¿Funcionará si instala cadenas de herramientas de 32 y 64 bits simultáneamente?
Coronel Panic
2
@Colonel sí, instalará las cadenas de herramientas (y cualquier biblioteca de terceros que instale) en directorios separados (/ mingw32 y / mingw64).
rubenvb
5
Muchas gracias @rubenvb. El wiki de msys2 es tan confuso para novatos como yo sobre cómo hacer estos sencillos pasos.
Toby
1
@Toby Estoy de acuerdo en que toman "el camino del arco" para explicar las cosas, es decir, si leen el wiki de Arch en pacman, sabrán casi lo mismo. La configuración de un principiante puede ser útil, aunque ahora está en SO que debería aparecer en Google bastante rápido :). (lea esto como: siga votando esta respuesta: P)
rubenvb
38

MSYS no se ha actualizado hace mucho tiempo, MSYS2 es más activo, se puede descargar desde MSYS2 , tiene ambos mingwy el cygwin forkpaquete.

Para instalar la cadena de herramientas MinGW-w64 ( referencia ):

  1. Abra el shell MSYS2 desde el menú de inicio
  2. Ejecutar pacman -Sy pacmanpara actualizar la base de datos del paquete
  3. Vuelva a abrir el shell, ejecute pacman -Syupara actualizar la base de datos del paquete y los paquetes del sistema principal
  4. Vuelva a abrir el shell, ejecute pacman -Supara actualizar el resto
  5. Instalar el compilador:
    • Para un destino de 32 bits, ejecute pacman -S mingw-w64-i686-toolchain
    • Para un destino de 64 bits, ejecute pacman -S mingw-w64-x86_64-toolchain
  6. Seleccione qué paquete instalar, el valor predeterminado es todo
  7. Es posible que también necesite make, ejecutarpacman -S make
Ala de acero
fuente
3
¿Cómo instalo una versión específica de MinGW-w64 como x86_64-6.2.0-release-posix-seh-rt_v5-rev1?
Youda008
1
¿Significa eso que el instalador de mingw como se describe aquí ya no es necesario? y debería instalar msys2?
lanoxx
1
Enlace Referenceroto
Jean-Francois T.
¿Alguna idea sobre por qué el shell msys2 se cerraría después de un segundo?
A_P
En caso de que necesite cmake, debe instalar pacman -S mingw-w64-x86_64-cmakey NO cmake . El cmake normal carecerá de generadores para minGW.
user136036