MinGW-w64离线安装程序

Cos*_*van 12 mingw-w64

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

提前致谢 !

Ste*_*314 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?
Run Code Online (Sandbox Code Playgroud)

前5个选项用于选择单个下载包.我不了解你,但我不知道如何选择线程和异常.纯粹基于下载统计数据,posix线程的使用量是win32的两倍多,seh似乎更受欢迎的64位,矮人为32位,sjlj似乎相当不受欢迎.我猜测32位posix和矮人是默认值.

要确定选项是什么,它使用此文件夹中的文件repository.txt .这只是一个以管道分隔的文本文件 - 这5个主要选项有5个字段,另外还有一个用于下载软件包的URL.

顺便说一下,如果有人知道在哪里可以找到安装程序的源代码,我真的很感激评论 - 我一直在寻找高低,发现例如错误报告,但没有找到安装程序的来源.但是,mingw-64二进制包的源代码很容易找到.

二进制包本身位于此文件夹(Win32)此文件夹(Win64)的文件夹中.

我不确定安装程序提供的快捷方式是什么 - 这是MinGW-w64,而不是MSYS或MSYS2,所以没有基于bash的shell来提供快捷方式.可能它们只是路径设置的Windows命令提示符快捷方式.

除了那个快捷方式问题之外,您所做的只是将软件包解压缩到合适的文件夹,确保mingw32\bin或mingw64\bin文件夹以某种方式位于路径上,您应该完成.我已经用32位gcc-5.4.0软件包中的一个测试了这个--g ++编译了一个没有问题的hello-world.

在子文件夹中有另外的第三方构建,从这里进一步开始(32位)和不同工具链的类似子文件夹,目标是用于64位和其他构建的*文件夹.ray_linn有各种构建,包括Ada(和Objective C/C++?)支持.rubenvb有一些较旧的GCC和Clang版本.dongsheng-daily看起来像每日构建,甚至包括实验GCC 7.

如果您也需要MSYS,请在评论中告诉我.我一直在离线安装(连同MinGW32)一段时间,所以我有一个列表要安装哪些软件包.你需要相当多的软件包,从SourceForge获取它们很痛苦,但是一旦你拥有它们,它们大多只是再次拆包.还有一些小的"postinstall"要做 - 一些要创建的文件,主要是在哪里找到MinGW,再加上创建shell的快捷方式.我有AutoIt脚本来做这个 - 有点乱,使用不合适的方法,因为它们是我当时在AutoIt中所知道的,但它们工作正常.

有MSYS2,但乍一看这是另一个在线安装假设的问题,使用pacman包管理器 - 可能非常方便,但不适合那些不能使用它的少数人.


Aar*_*son 11

是的,如果您首先pacman在面向Internet的计算机上使用MSYS2,则可以离线安装mingw-w64 ,然后将pacman下载的文件传输到离线计算机.

对于你的问题,pacman的优点是它将获取所有依赖项的正确版本.

在面向互联网的机器上:

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

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

    repo-add ./offline.db.tar.gz ./*
    
    Run Code Online (Sandbox Code Playgroud)
  5. 将MSYS2安装程序AND复制~/offline_packages到外部闪存驱动器.

在离线机器上:

  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
      
      Run Code Online (Sandbox Code Playgroud)
  4. 在MSYS2终端中,将pacman数据库与新存储库同步

    pacman -Syu
    
    Run Code Online (Sandbox Code Playgroud)
  5. 安装mingw-w64等

    pacman -S --needed base base-devel mingw-w64-x86_64-toolchain
    
    Run Code Online (Sandbox Code Playgroud)
  6. 完成!

参考文献:https: //wiki.archlinux.org/index.php/Pacman/Tips_and_tricks#Installation_and_recovery