smw*_*dia 77 cygwin mingw msys mingw-w64 msys2
我正在尝试构建一些开源库.我需要包管理系统来轻松下载依赖项.起初我正在使用MinGW+MSYS.但包含的包裹有限.有人告诉我使用MinGW-w64 + MSYS2.
我mingw-w64-install从这里下载了.运行时,它会报告以下错误.怎么解决?

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

我目前的理解是,到目前为止MinGW+MSYS,MSYS只是MinGW的一个很好的插件,而在MinGW-w64 + MSYS2,MSYS2是独立的,MinGW-W64只是一组可以使用的库.就像Cygwin可以下载许多不同的包装一样.
rub*_*nvb 179
不幸的是,您使用的MinGW-w64安装程序有时会遇到此问题.我自己不确定为什么会发生这种情况(我认为它与Sourceforge URL重定向或安装程序当前无法正常处理的任何内容有关).
无论如何,如果您已经计划使用MSYS2,则不需要该安装程序.
从此页面下载MSYS2 (根据您要使用的Windows版本选择32位或64位,而不是您要构建的可执行文件类型,两个版本都可以构建32位和64位二进制文件).
安装完成后,单击" 开始"菜单中任一MSYS2 64-bit或下面新创建的"MSYS2 Shell"选项MSYS2 32-bit.根据wiki更新MSYS2(虽然我只是做了一个pacman -Syu,忽略所有错误并关闭窗口并打开一个新窗口,不推荐这样做,你应该按照wiki页面说的做).
安装工具链
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)安装您可能需要的任何库/工具.您可以通过执行来搜索存储库
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库!
打开MinGW-w64 shell:
a)要构建32位的东西,打开"MinGW-w64 32位Shell"
b)要构建64位的东西,打开"MinGW-w64 64位Shell"
验证编译器是否正在执行
gcc -v
Run Code Online (Sandbox Code Playgroud)如果要在MSYS2环境之外使用工具链(带有已安装的库),您只需要添加<MSYS2 root>/mingw32/bin或添加<MSYS2 root>/mingw64/bin到您的PATH.
Ste*_*ing 25
MSYS没有更新很久,MSYS2更活跃,你可以从MSYS2下载,它有mingw和cygwin fork包.
要安装MinGW-w64工具链(参考):
pacman -Sy pacman以更新包数据库pacman -Syu以更新包数据库和核心系统包pacman -Su以更新其余部分pacman -S mingw-w64-i686-toolchainpacman -S mingw-w64-x86_64-toolchainmake,运行pacman -S make