msys2\usr\bin 中的 gcc.exe 和 msys2\mingww64\bin 中的 gcc.exe 有什么不同?

What is different between gcc.exe in msys2\usr\bin and gcc.exe in msys2\mingww64\bin?

当输入 pacman -S gcc 时,它会在 msys2 的 /usr/bin 中安装 gcc,但是当输入 pacman -S mingw-w64-x86_64-gcc 时,它会安装在 /mingww64/bin.[=14 中=]

它们有什么不同?

/usr/bin 中的 GCC 编译器生成使用 msys-2.0.dll 作为 运行 时间依赖项的可执行文件。该 DLL 基本上是 Cygwin 的一个分支,它提供了 POSIX 命令的模拟,这些命令通常在 Windows 上不可用。该环境主要用于来自 Linux 世界(如 bash)的 运行ning 程序,这些程序需要 POSIX 命令并且不能轻易移植到本地 Windows 环境.

/mingw32/bin/mingw64/bin 中的 GCC 编译器生成本机 Windows 可执行文件,分别针对 Windows 的 32 位或 64 位版本。 32 位可执行文件实际上可以 运行 在 32 位或 64 位 Windows 上。这些可执行文件更容易分发;您通常只需将它们依赖的所有 DLL 从 /mingw*/bin 文件夹复制到与您的可执行文件相同的目录,然后您就可以在其他计算机上成功 运行。由于 MSYS2 的主要目的是帮助编写本机 Windows 软件,您会发现 MinGW 环境中的库比 msys-2 中的库种类更多。0.dll 环境。