首页 文章

如何安装MinGW-w64和MSYS2?

提问于
浏览
70

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

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

enter image description here

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

enter image description here

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

2 回答

  • 163

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

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

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

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

    • 安装工具链

    a)对于32位:

    pacman -S mingw-w64-i686-gcc
    

    b)对于64位:

    pacman -S mingw-w64-x86_64-gcc
    
    • 安装您可能需要的任何库/工具 . 您可以通过执行来搜索存储库
    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库!

    • 打开MinGW-w64 shell:

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

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

    • 验证编译器是否正在执行
    gcc -v
    

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

  • 20

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

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

    • 从开始菜单打开MSYS2 shell

    • 运行 pacman -Sy pacman 以更新包数据库

    • 重新打开shell,运行 pacman -Syu 以更新包数据库和核心系统包

    • 重新打开shell,运行 pacman -Su 以更新其余部分

    • 安装编译器:

    • 对于32位目标,运行 pacman -S mingw-w64-i686-toolchain

    • 对于64位目标,运行 pacman -S mingw-w64-x86_64-toolchain

    • 选择要安装的软件包,默认为all

    • 您可能还需要 make ,运行 pacman -S make

相关问题