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

13

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

它们之间的区别是什么?

1个回答

22

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接