如何安装 MinGW-w64 和 MSYS2?
How to install MinGW-w64 and MSYS2?
我正在尝试构建一些开源库。我需要包管理系统来轻松下载依赖项。一开始我用的是MinGW+MSYS
。但是包含的包是有限的。有人告诉我使用 MinGW-w64 + MSYS2
.
我从 here 下载了 mingw-w64-install
。当运行时,报如下错误。如何解决?
顺便说一下,在 MinGW-w64
下载页面上,我看到了很多下载链接。甚至列出了 Cygwin。 Cygwin
和 MinGW-w64
有什么关系?
我目前的理解是,在MinGW+MSYS
的时候,MSYS只是MinGW的一个很好的插件,而在MinGW-w64 + MSYS2
的时候,MSYS2是独立的,MinGW-w64只是一组库它可以使用。就像Cygwin可以下载很多不同的包一样。
很遗憾,您使用的 MinGW-w64 安装程序有时会出现此问题。我自己不确定为什么会发生这种情况(我认为这与 Sourceforge URL 重定向或安装程序当前无法正确处理的任何内容有关)。
无论如何,如果您已经计划使用 MSYS2,则不需要该安装程序。
从 this page 下载 MSYS2。
安装完成后,在“开始”菜单(或mingw64.exe
或mingw32.exe
在安装目录)。
如果操作正确,终端提示将分别显示 MINGW64
或 MINGW32
,而不是 MSYS
。
使用 pacman -Syuu
更新 MSYS2。如果它在更新过程中自行关闭,请重新启动它并重复相同的命令以完成更新。
您应该定期更新您的安装。
安装工具链
a) 对于 64 位:
pacman -S mingw-w64-x86_64-toolchain
b) 对于 32 位:
pacman -S mingw-w64-i686-toolchain
这包括 GCC(编译器)、GDB(调试器)等。
安装您可能需要的任何 libraries/tools。您可以通过
搜索存储库
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
从那时起,您的编译器将自动找到 GSL 库!
确保您安装的任何编译器和库都具有此包前缀(mingw-w64-x86_64-
用于 64 位或 mingw-w64-i686-
用于 32 位)。只对杂项命令行实用程序(例如 grep
、sed
、make
等)使用无前缀的包,除非您知道自己在做什么。
通过
验证编译器是否正常工作
gcc --version
如果您想在 MSYS2 环境之外使用工具链(带有已安装的库),您需要做的就是将 <MSYS2 root>/mingw64/bin
或 <MSYS2 root>/mingw32/bin
添加到您的 PATH
。
MSYS好久没更新了,MSYS2比较活跃,大家可以去MSYS2下载,里面有mingw
和cygwin 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
- Select安装哪个包,默认全部
- 您可能还需要
make
、运行pacman -S make
您现在还可以从 https://winlibs.com/ 获取 MinGW-w64 的独立个人版本,无需安装 - 只需解压即可使用。这允许在同一系统上拥有多个工具链(例如,一个用于 Windows 32 位,另一个用于 Windows 64 位)。
我正在尝试构建一些开源库。我需要包管理系统来轻松下载依赖项。一开始我用的是MinGW+MSYS
。但是包含的包是有限的。有人告诉我使用 MinGW-w64 + MSYS2
.
我从 here 下载了 mingw-w64-install
。当运行时,报如下错误。如何解决?
顺便说一下,在 MinGW-w64
下载页面上,我看到了很多下载链接。甚至列出了 Cygwin。 Cygwin
和 MinGW-w64
有什么关系?
我目前的理解是,在MinGW+MSYS
的时候,MSYS只是MinGW的一个很好的插件,而在MinGW-w64 + MSYS2
的时候,MSYS2是独立的,MinGW-w64只是一组库它可以使用。就像Cygwin可以下载很多不同的包一样。
很遗憾,您使用的 MinGW-w64 安装程序有时会出现此问题。我自己不确定为什么会发生这种情况(我认为这与 Sourceforge URL 重定向或安装程序当前无法正确处理的任何内容有关)。
无论如何,如果您已经计划使用 MSYS2,则不需要该安装程序。
从 this page 下载 MSYS2。
安装完成后,在“开始”菜单(或
mingw64.exe
或mingw32.exe
在安装目录)。如果操作正确,终端提示将分别显示
MINGW64
或MINGW32
,而不是MSYS
。使用
pacman -Syuu
更新 MSYS2。如果它在更新过程中自行关闭,请重新启动它并重复相同的命令以完成更新。您应该定期更新您的安装。
安装工具链
a) 对于 64 位:
pacman -S mingw-w64-x86_64-toolchain
b) 对于 32 位:
pacman -S mingw-w64-i686-toolchain
这包括 GCC(编译器)、GDB(调试器)等。
安装您可能需要的任何 libraries/tools。您可以通过
搜索存储库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
从那时起,您的编译器将自动找到 GSL 库!
确保您安装的任何编译器和库都具有此包前缀(
mingw-w64-x86_64-
用于 64 位或mingw-w64-i686-
用于 32 位)。只对杂项命令行实用程序(例如grep
、sed
、make
等)使用无前缀的包,除非您知道自己在做什么。通过
验证编译器是否正常工作gcc --version
如果您想在 MSYS2 环境之外使用工具链(带有已安装的库),您需要做的就是将 <MSYS2 root>/mingw64/bin
或 <MSYS2 root>/mingw32/bin
添加到您的 PATH
。
MSYS好久没更新了,MSYS2比较活跃,大家可以去MSYS2下载,里面有mingw
和cygwin 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
- 对于 32 位目标,运行
- Select安装哪个包,默认全部
- 您可能还需要
make
、运行pacman -S make
您现在还可以从 https://winlibs.com/ 获取 MinGW-w64 的独立个人版本,无需安装 - 只需解压即可使用。这允许在同一系统上拥有多个工具链(例如,一个用于 Windows 32 位,另一个用于 Windows 64 位)。