既然我有 msys2,我可以删除之前在 mingw 上安装的实例吗?

can I delete previously installed instance on mingw now that i have msys2?

我正在尝试学习 C++ 编程。我正在使用 Codeblocks IDE 在 Windows Vista 上编写这些程序,但由于我要学习 Linux,我想学习编写具有尽可能多的可移植性的程序。

我已经下载了用于 Codeblocks 的 mingw 编译器,但是在尝试下载 GTK 依赖项以尝试使用 GUI 时,我下载了 msys2。我注意到这个程序还让你下载 Mingw32 和/或 mingw64。这些包是否足够完整以至于我可以删除我以前的 mingw 实例,或者我是否需要保留我已经下载的其他 mingw 包以便编译和 运行 我的程序?

在你的 msys-git 目录中找到 gcc,你就会知道。通常,它会丢失,在这种情况下,您应该保留完整的 mingw 设置。此外,如果你想要一个真正的 linux 仿真,请使用 cygwin,而不是 mingw,它只提供一个编译器(而不是 Linux 系统调用等)

是的,MSYS2 是一个完整的开发环境,带有包管理器、编译器和构建工具。您无需安装任何类型的外部工具即可使用 MSYS2 开发可移植的 C++ 代码。

请记住,MSYS2 支持三个不同的子系统。当您单击开始菜单中的三个快捷方式之一以启动 shell 时,您 select 使用哪个子系统。 Win64 和 Win32 shells,以及它们的编译器工具链包 mingw-w64-x86_64-toolchainmingw-w64-i686-toolchain,允许您编写仅依赖于几个运行时 DLL 的本机 Windows 应用程序。 MSYS2 shell 允许您编写依赖于 msys-2.0.dll 的应用程序,它是 Cygwin 的一个分支,可以更好地模拟 POSIX(因此为 [=18= 设计的程序] 更有可能工作)。如果您希望您的代码可移植,我认为您希望它在所有这三种环境中都能工作。您还可以使用 VirtualBox 或 VMware 在您的计算机上安装 Linux 并在虚拟机中开发您的代码。