有没有办法在线下安装mingw-w64?我尝试了许多官方消息来源,他们似乎都需要某种互联网接入。我正在寻找适用于x32和x64系统的东西。我试着看一下the official repository,但我不确定这项任务需要哪些文件。
提前致谢!
答案 0 :(得分:14)
虽然以下内容尚未完全测试,但似乎没有必要使用脱机安装程序。根据错误报告的一些屏幕截图,在线安装程序会询问以下问题......
Version .......... seems to be the GNU GCC version number
Architecture ..... i686 / x86_64
Threads .......... posix / win32
Exception ........ dwarf / sjlj / seh
Build Revision ... 0 / 1 / 2 / ...
Install folder ... e.g. c:\mingw
Create desktop shortcuts?
前5个选项用于选择单个下载包。我不了解你,但我不知道如何选择线程和异常。纯粹基于下载统计数据,posix线程的使用量是win32的两倍多,seh似乎更受欢迎的64位,矮人为32位,sjlj似乎相当不受欢迎。我猜测32位的posix和矮人是默认的。
要确定选项是什么,它使用来自this folder的文件repository.txt。这只是一个以管道分隔的文本文件 - 这5个主要选项有5个字段,还有一个用于下载软件包的URL。
顺便提一下,如果有人知道在哪里可以找到安装程序的源代码,我真的很感激评论 - 我已经追求高低,发现例如错误报告,但没有找到安装程序的来源。但是,mingw-64二进制包的源代码很容易找到。
二进制包本身位于this folder (Win32)和this folder (Win64)的子文件夹中。
我不确定安装程序提供的快捷方式是什么 - 这是MinGW-w64,而不是MSYS或MSYS2,所以没有基于bash的shell提供快捷方式。可能它们只是路径设置的Windows命令提示符快捷方式。
除了快捷方式问题之外,您所做的只是将软件包解压缩到合适的文件夹,确保mingw32 \ bin或mingw64 \ bin文件夹以某种方式位于路径上,您应该完成。我已经使用32位gcc-5.4.0软件包中的一个来测试它 - g ++编译了一个没有问题的hello-world。
子文件夹中还有其他第三方构建,从更远的here (32 bit)开始,以及针对64位和其他构建目标*文件夹的不同工具链的类似子文件夹。 ray_linn有各种构建,包括Ada(和Objective C / C ++?)支持。 rubenvb有一些较旧的GCC和Clang版本。 dongsheng-daily看起来像每日构建,甚至包括实验GCC 7。
如果您也需要MSYS,请在评论中告诉我。我一直在离线安装(连同MinGW32)一段时间,所以我有一个列表要安装哪些软件包。你需要相当多的软件包,从SourceForge获取它们很痛苦,但是一旦你拥有它们,它们大多只是再次拆包。还有一些小的“postinstall”要做 - 一些要创建的文件,主要是在哪里找到MinGW,再加上创建shell的快捷方式。我有AutoIt脚本来做这件事 - 有点乱,使用不合适的方法,因为它们是我当时在AutoIt中所知道的,但它们工作正常。
有MSYS2,但乍一看这是另一个在线安装假设的问题,使用pacman包管理器 - 可能非常方便,但不适合那些不能使用它的少数人。
答案 1 :(得分:8)
是的,如果您首先在面向互联网的计算机上使用MSYS2的pacman
,则可以离线安装mingw-w64,然后将pacman下载的文件传输到离线计算机。
对于你的问题,pacman的优点在于它将获取所有依赖项的正确版本。
在面向互联网的机器上:
pacman -Syu
在MSYS2终端中,创建一个包含所需包的文件夹(即mingw-w64)
mkdir ~/offline_packages
cd ~/offline_packages
pacman -Syw base base-devel mingw-w64-x86_64-toolchain --cachedir .
使用pacman的repo-add
脚本将所有内容捆绑到数据库中:
repo-add ./offline.db.tar.gz ./*
~/offline_packages
复制到外部闪存驱动器。在您的离线计算机上:
offline_packages
文件夹从闪存驱动器复制到MSYS2可以访问的路径(例如C:/msys64/home/user/offline_packages
)修改C:/msys64/etc/pacman.conf
[mingw32], [mingw64], [msys]
存储库。添加新存储库。此示例使用上面给出的任意路径。修改为指向您复制offline_packages文件夹的位置。
[offline]
SigLevel = Optional
Server = file:///home/user/offline_packages
在MSYS2终端中,将pacman数据库与新存储库同步
pacman -Syu
安装mingw-w64等
pacman -S --needed base base-devel mingw-w64-x86_64-toolchain
参考文献: https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Installation_and_recovery