如何安装MinGW-w64和MSYS2?

smw*_*dia 77 cygwin mingw msys mingw-w64 msys2

我正在尝试构建一些开源库.我需要包管理系统来轻松下载依赖项.起初我正在使用MinGW+MSYS.但包含的包裹有限.有人告诉我使用MinGW-w64 + MSYS2.

mingw-w64-install这里下载了.运行时,它会报告以下错误.怎么解决?

在此输入图像描述

顺便说一句,从MinGW-w64下载页面,我看到了很多下载链接.甚至Cygwin也被列入名单.怎么CygwinMinGW-w64相关?

在此输入图像描述

我目前的理解是,到目前为止MinGW+MSYS,MSYS只是MinGW的一个很好的插件,而在MinGW-w64 + MSYS2,MSYS2是独立的,MinGW-W64只是一组可以使用的库.就像Cygwin可以下载许多不同的包装一样.

rub*_*nvb 179

不幸的是,您使用的MinGW-w64安装程序有时会遇到此问题.我自己不确定为什么会发生这种情况(我认为它与Sourceforge URL重定向或安装程序当前无法正常处理的任何内容有关).

无论如何,如果您已经计划使用MSYS2,则不需要该安装程序.

  1. 从此页面下载MSYS2 (根据您要使用的Windows版本选择32位或64位,而不是您要构建的可执行文件类型,两个版本都可以构建32位和64位二进制文​​件).

  2. 安装完成后,单击" 开始"菜单中任一MSYS2 64-bit或下面新创建的"MSYS2 Shell"选项MSYS2 32-bit.根据wiki更新MSYS2(虽然我只是做了一个pacman -Syu,忽略所有错误并关闭窗口并打开一个新窗口,不推荐这样做,你应该按照wiki页面说的做).

  3. 安装工具链

    a)对于32位:

    pacman -S mingw-w64-i686-gcc
    
    Run Code Online (Sandbox Code Playgroud)

    b)对于64位:

    pacman -S mingw-w64-x86_64-gcc
    
    Run Code Online (Sandbox Code Playgroud)
  4. 安装您可能需要的任何库/工具.您可以通过执行来搜索存储库

    pacman -Ss name_of_something_i_want_to_install
    
    Run Code Online (Sandbox Code Playgroud)

    例如

    pacman -Ss gsl
    
    Run Code Online (Sandbox Code Playgroud)

    并安装使用

    pacman -S package_name_of_something_i_want_to_install
    
    Run Code Online (Sandbox Code Playgroud)

    例如

    pacman -S mingw-w64-x86_64-gsl
    
    Run Code Online (Sandbox Code Playgroud)

    从那时起,您的MinGW-W64 64位编译器会自动找到GSL库!

  5. 打开MinGW-w64 shell:

    a)要构建32位的东西,打开"MinGW-w64 32位Shell"

    b)要构建64位的东西,打开"MinGW-w64 64位Shell"

  6. 验证编译器是否正在执行

    gcc -v
    
    Run Code Online (Sandbox Code Playgroud)

如果要在MSYS2环境之外使用工具链(带有已安装的库),您只需要添加<MSYS2 root>/mingw32/bin或添加<MSYS2 root>/mingw64/bin到您的PATH.

  • 也许更新指向[新安装程序](https://msys2.github.io/)? (7认同)
  • 谢谢.如何获得`pacman`可以识别的包的规范名称? (4认同)
  • 非常感谢@rubenvb.msys2 wiki对于如何做这几个简单的步骤,对像我这样的新手来说太混乱了. (4认同)
  • @Colonel是的,它会在不同的目录(/ mingw32和/ mingw64)中安装工具链(以及你安装的任何第三方库). (2认同)
  • 使用 pacman 来安装 mingw-w64 是一个很好的建议。我在尝试使用代理安装 mingw-w64 时遇到了同样的问题。首先安装 MSYS2,为代理设置环境变量,如 http://superuser.com/questions/713582/mingw-installer-not-working-with-proxy 并遵循您的答案,效果非常好。 (2认同)

Ste*_*ing 25

MSYS没有更新很久,MSYS2更活跃,你可以从MSYS2下载,它有mingwcygwin fork包.

要安装MinGW-w64工具链(参考):

  1. 从开始菜单打开MSYS2 shell
  2. 运行pacman -Sy pacman以更新包数据库
  3. 重新打开shell,运行pacman -Syu以更新包数据库和核心系统包
  4. 重新打开shell,运行pacman -Su以更新其余部分
  5. 安装编译器:
    • 对于32位目标,运行 pacman -S mingw-w64-i686-toolchain
    • 对于64位目标,运行 pacman -S mingw-w64-x86_64-toolchain
  6. 选择要安装的软件包,默认为all
  7. 您可能还需要make,运行pacman -S make

  • 我如何安装特定的MinGW-w64版本,如`x86_64-6.2.0-release-posix-seh-rt_v5-rev1`? (3认同)
  • 如果您需要 cmake,则必须安装 `pacman -S mingw-w64-x86_64-cmake` 而*不是* `cmake`。正常的 cmake 将缺少 minGW 的生成器。 (2认同)