1

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

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

4

2 回答 2

3

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

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

于 2016-01-04T18:51:28.037 回答
0

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

于 2016-01-04T15:56:08.523 回答