msys2\usr\bin 中的 gcc.exe 和 msys2\mingww64\bin 中的 gcc.exe 有啥区别?

Posted

技术标签:

【中文标题】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?msys2\usr\bin 中的 gcc.exe 和 msys2\mingww64\bin 中的 gcc.exe 有什么区别? 【发布时间】:2018-09-03 15:02:18 【问题描述】:

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

它们之间有什么不同?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于msys2\usr\bin 中的 gcc.exe 和 msys2\mingww64\bin 中的 gcc.exe 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

MinGW GCC.exe 从路径中删除所有 \

x86_64-w64-mingw32-gcc.exe:错误:CreateProcess:没有这样的文件或目录

如何使用Notepad++和GCC搭建Windows下的C语言学习环境

编译链接 LUA5.1 库。 dev-cpp 中的错误

mingw32-gcc.exe: error: CreateProcess: No such file or directory

如何让 msys 识别 gcc?