我正在尝试构建一些开源库 . 我需要包管理系统来轻松下载依赖项 . 起初我正在使用 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可以下载许多不同的包装一样 .
2 回答
不幸的是,您使用的MinGW-w64安装程序有时会遇到此问题 . 我自己不确定为什么会发生这种情况(我认为它与Sourceforge URL重定向或安装程序当前无法正常处理的任何内容有关) .
无论如何,如果您已经计划使用MSYS2,则不需要该安装程序 .
从this page下载MSYS2(根据您要使用的Windows版本选择32位或64位,而不是您要构建的可执行文件类型,两个版本都可以构建32位和64位二进制文件) .
安装完成后,单击“开始”菜单中
MSYS2 64-bit
或MSYS2 32-bit
下新创建的"MSYS2 Shell"选项 . 根据wiki更新MSYS2(虽然我只是做pacman -Syu
,忽略所有错误并关闭窗口并打开一个新窗口,不推荐这样做,你应该按照wiki页面说的那样做) .安装工具链
a)对于32位:
b)对于64位:
例如
并安装使用
例如
从那时起,您的MinGW-W64 64位编译器会自动找到GSL库!
a)要构建32位的东西,打开“MinGW-w64 32位Shell”
b)要构建64位的东西,打开“MinGW-w64 64位Shell”
如果要在MSYS2环境之外使用工具链(使用已安装的库),您只需将
<MSYS2 root>/mingw32/bin
或<MSYS2 root>/mingw64/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
选择要安装的软件包,默认为all
您可能还需要
make
,运行pacman -S make