MinGW-w64离线安装程序

时间:2016-07-15 10:24:50

标签: mingw-w64

有没有办法在线下安装mingw-w64?我尝试了许多官方消息来源,他们似乎都需要某种互联网接入。我正在寻找适用于x32和x64系统的东西。我试着看一下the official repository,但我不确定这项任务需要哪些文件。

提前致谢!

2 个答案:

答案 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的优点在于它将获取所有依赖项的正确版本。

在面向互联网的机器上:

  1. 使用http://www.msys2.org/
  2. 中的MSYS2安装程序
  3. 运行MSYS2,并使用pacman -Syu
  4. 更新包数据库
  5. 在MSYS2终端中,创建一个包含所需包的文件夹(即mingw-w64)

    mkdir ~/offline_packages
    cd ~/offline_packages
    pacman -Syw base base-devel mingw-w64-x86_64-toolchain --cachedir .
    
  6. 使用pacman的repo-add脚本将所有内容捆绑到数据库中:

    repo-add ./offline.db.tar.gz ./*
    
  7. 将MSYS2安装程序和~/offline_packages复制到外部闪存驱动器。
  8. 在您的离线计算机上:

    1. 安装MSYS2。
    2. offline_packages文件夹从闪存驱动器复制到MSYS2可以访问的路径(例如C:/msys64/home/user/offline_packages
    3. 修改C:/msys64/etc/pacman.conf

      1. 注释掉[mingw32], [mingw64], [msys]存储库。
      2. 添加新存储库。此示例使用上面给出的任意路径。修改为指向您复制offline_packages文件夹的位置。

        [offline]
        SigLevel = Optional
        Server = file:///home/user/offline_packages
        
    4. 在MSYS2终端中,将pacman数据库与新存储库同步

      pacman -Syu
      
    5. 安装mingw-w64等

      pacman -S --needed base base-devel mingw-w64-x86_64-toolchain
      
    6. 完成!
    7. 参考文献: https://wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Installation_and_recovery