如何安装MinGW-w64和MSYS2?


85

我正在尝试建立一些开源库。我需要软件包管理系统来轻松下载依赖项。首先我正在使用MinGW+MSYS。但是包含的软件包是有限的。有人叫我用MinGW-w64 + MSYS2

mingw-w64-install这里下载了。运行时,它将报告以下错误。如何解决?

在此处输入图片说明

顺便说一句,在MinGW-w64下载页面上,我看到了很多下载链接。甚至Cygwin也被列出。如何CygwinMinGW-w64有关系吗?

在此处输入图片说明

我目前的理解是,在的时候MinGW+MSYS,MSYS只是MinGW的一个不错的插件,而在的MinGW-w64 + MSYS2MSYS2是独立的,而MinGW-w64只是它可以使用的一组库。就像Cygwin可以下载许多不同的软件包一样。

Answers:


197

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

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

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

  2. 安装完成后,单击“开始”菜单下MSYS2 64-bitMSYS2 32-bit“开始”菜单中新创建的“ MSYS2 Shell”选项。根据Wiki更新MSYS2(尽管我只是做一个pacman -Syu,忽略所有错误并关闭窗口并打开一个新窗口,不建议这样做,您应该执行Wiki页面上的说明)。

  3. 安装工具链

    a)对于32位:

    pacman -S mingw-w64-i686-gcc
    

    b)对于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
    

    然后,您的MinGW-w64 64位编译器会自动找到GSL库!

  5. 打开MinGW-w64 Shell:

    a)要构建32位内容,请打开“ MinGW-w64 32位Shell”

    b)要构建64位内容,请打开“ MinGW-w64 64位Shell”

  6. 通过执行以下操作验证编译器是否正常工作

    gcc -v
    

如果您想在MSYS2环境之外使用工具链(带有已安装的库),您所要做的就是在<MSYS2 root>/mingw32/bin<MSYS2 root>/mingw64/bin中添加PATH


4
谢谢。我如何获得pacman可以识别的包装的规范名称?
smwikipedia'5

1
如果同时安装32位和64位工具链,是否可以工作?
上校恐慌

2
@Colonel是的,它将在单独的目录(/ mingw32和/ mingw64)中安装工具链(以及您安装的任何第3方库)。
rubenvb 2015年

5
非常感谢@rubenvb。对于像我这样的菜鸟来说,msys2 Wiki在如何执行这几个简单步骤上是如此令人困惑。
托比

1
@Toby我同意他们在解释事物时采取“拱门方式”,即阅读pacman上的Arch Wiki,您几乎会知道。初学者的设置可能会很有用,尽管它现在是SO上的,应该很快就能在Google上找到它了:)。(请阅读:继续支持此答案:P)
rubenvb 2016年

37

MSYS尚未更新很长时间,MSYS2更活跃,可以从MSYS2下载,它同时具有mingwcygwin fork软件包。

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

  1. 从开始菜单打开MSYS2 Shell
  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 '16

1
这是否意味着不再需要此处所述的mingw安装程序?我应该只安装msys2?
lanoxx

1
链接Reference被打破
让-弗朗索瓦·T.

为什么msys2 shell一秒钟后会自行关闭?
A_P

如果需要cmake,则必须安装pacman -S mingw-w64-x86_64-cmake不是 cmake。正常的cmake将缺少minGW的生成器。
user136036
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.