7
  1. 我在这里安装 msys2 。

  2. 我从这里下载 i686-5.3.0-release-posix-dwarf-rt_v4-rev0

  3. 设置msys2-i686-20160205.exe后,在C:\msys32中提取i686-5.3.0-release-posix-dwarf-rt_v4-rev0

  4. 最后我从开始菜单运行MinGW-w64 Win32 Shell并分别运行这些命令:

    • pacman -Sy pacman

    • 吃豆人-Syu

    • 吃豆人-苏

  5. 在 PATH 中添加C:\msys32\mingw32\bin 。

我的问题:

  1. 将mingw-w64与任何IDE一起使用,我这样做是真的吗?
  2. MinGW-w64 Win32 ShellMSYS2 Shell有什么区别?

提前致谢。

4

2 回答 2

8

这里的前 msys2 和 arch linux 用户,目前就读于大学,该课程使用代码块作为程序是否有效的标准指标,我想我可以在这里为您提供帮助。

基本要点是您要正常安装 msys2 以及代码块,然后使用代码块设置将编译器设置为使用 msys2 的 mingw-w64 编译器。迷茫了吗?总体来说很简单。

  1. 安装代码块。使用已安装 mingw 的安装程序,稍后我们将从默认工具链中复制一些内容。
  2. 安装 msys2(默认安装位置很好,C:\msys64对于 64 位,我认为C:\msys32是 32 位;我们将在本指南的其余部分假设 64 位)。记下您安装它的位置,我们稍后会需要它。
  3. 打开 msys2 msys 提示符
  4. 更新 msys2 (两部分过程,因为 Windows 不能轻易交换使用中的文件)$ pacman -Syu;它将更新一小部分可用软件包并要求您关闭窗口。
  5. 完成 msys2 更新$ pacman -Syu;这次列表会更大。
  6. 安装base-devel包组$ pacman -Syu base-devel;它会提示您组中的软件包列表。您想跳过 pacman 本身,否则它将具有相同的两部分更新内容。上次我检查时,pacman 在列表中排在第 39 位,因此您1-38,40-56需要输入要安装的内容(根据您提供的任何内容进行调整$currentdate,它可能并不总是 39)。
  7. 安装一个 mingw-w64 工具链pacman -Syu mingw-w64-x86_64-toolchain,它会再次提示你选择包,你想要它们,所以只需按 Enter。如果你想要 32 位工具链,你会使用pacman -Syu mingw-w64-i686-toolchain.
  8. 打开代码块。如果这是您的第一次运行,它会询问您有关文件关联和首选项等的信息。设置那些你喜欢的。
  9. 在菜单栏中,单击设置->编译器。它应该默认为GNU GCC Compiler. 在该设置下应该有一个按钮来复制它。为新的编译器配置文件起一个描述性的名称(我选择了MSYS2 mingw-w64-x86_64 G++. 它会提示您更新工具链可执行文件。
  10. 在编译器屏幕上,有一个名为 的选项卡Toolchain executables,单击它。将Compiler's installation directory安装 msys2 的位置设置为 + 或者 mingw64 用于 64 位工具链或 mingw32 用于 32 位工具链。假设默认安装位置和 64 位工具链,这应该是C:\msys64\mingw64.
  11. 在此下方,更改所有选项的名称Program Files以删除mingw32-前缀,除了Make program必须保留的前缀mingw32-make.exe。其他所有东西都应该有平面名称(gcc.exe,g++.exe等)。
  12. 可选:将此新编译器设置为默认值。您可以从同一Settings->Compiler窗口执行此操作。

我创建了一个youtube视频来展示整个过程,因为我还没有在互联网上的任何地方看到这个记录。

于 2018-11-03T15:26:48.613 回答
1

我也有问题 #2:“MinGW-w64 Win32 Shell 和 MSYS2 Shell 有什么区别?”。我在这个官方 wiki 页面上找到了答案。有关原始完整格式,请参阅原始页面。这是截至 2017 年 8 月 9 日页面的相关部分。

MSYS2 子系统

MSYS2 由三个子系统及其对应的包存储库 msys2、mingw32 和 mingw64 组成。

mingw 子系统提供本地 Windows 程序,是该项目的主要关注点。这些程序旨在与其他 Windows 程序很好地协作,独立于其他子系统。

msys2 子系统为构建软件、包管理和 shell 脚本提供了一个模拟的大部分符合 POSIX 的环境。这些程序存在于一个虚拟的单根文件系统中(根是 MSYS2 安装目录)。为使这些程序与本机 Windows 程序很好地协同工作,我们付出了一些努力,但这并不是无缝的。

每个子系统在 msys2-devel、mingw-w64-i686-toolchain 和 mingw-w64-x86_64-toolchain 中都提供了自己的本机(即目标=主机)编译器工具链。mingw-w64-cross-toolchain 中也有 host={i686,x86_64}-pc-msys 和 target={i686,x86_64}-w64-mingw32 的交叉编译器工具链,但是因为没有库,所以使用有限包给他们。

贝壳

每个子系统都有一个关联的“shell”,它本质上是一组允许子系统正常协作的环境变量。可以使用 MSYS2 安装目录中的启动器或使用 Windows 开始菜单中的快捷方式调用这些 shell。启动器设置 MSYSTEM 变量并使用适当的 shell (bash) 打开终端窗口 (mintty)。Bash 依次获取 /etc/profile,它根据 MSYSTEM 的值设置环境。如果没有正确的环境,各种各样的事情可能而且将会(有时是默默地)破裂。例外是使用纯 Windows 中的 mingw 子系统,除了 PATH 中的条目外,它不需要任何特殊环境。不要在 shell 之外设置 MSYSTEM,因为这也会破坏事情。

于 2017-08-09T11:58:28.377 回答