既然我有 msys2,我可以删除以前在 mingw 上安装的实例吗?
Posted
技术标签:
【中文标题】既然我有 msys2,我可以删除以前在 mingw 上安装的实例吗?【英文标题】:can I delete previously installed instance on mingw now that i have msys2? 【发布时间】:2016-01-04 15:52:30 【问题描述】:我正在尝试学习 C++ 编程。我正在使用 Codeblocks IDE 在 Windows Vista 上编写这些程序,但是由于我要学习 Linux,所以我想学习编写具有尽可能多的可移植性的程序。
我已经下载了 mingw 编译器以与 Codeblocks 一起使用,但在尝试下载 GTK 依赖项以尝试使用 GUI 时,我下载了 msys2。我注意到这个程序也让你下载 Mingw32 和/或 mingw64。这些包是否足够完整,我可以删除我以前的 mingw 实例,还是需要保留我已经下载的其他 mingw 包才能编译和运行我的程序?
【问题讨论】:
MSYS 和 MinGW c 包含同一环境的不同部分。 MSYS 和 MSYS2 是不同的,所以我建议编辑你的标题以明确你在谈论 MSYS2。 【参考方案1】:是的,MSYS2 是一个完整的开发环境,具有包管理器、编译器和构建工具。您无需安装任何类型的外部工具即可使用 MSYS2 开发可移植的 C++ 代码。
请记住,MSYS2 支持三种不同的子系统。当您单击开始菜单中的三个快捷方式之一来启动 shell 时,您可以选择要使用的子系统。 Win64 和 Win32 shell 以及它们的编译器工具链包 mingw-w64-x86_64-toolchain
和 mingw-w64-i686-toolchain
,允许您编写仅依赖于几个运行时 DLL 的本机 Windows 应用程序。 MSYS2 shell 允许您编写依赖于 msys-2.0.dll 的应用程序,它是 Cygwin 的一个分支,可提供更好的 POSIX 仿真(因此为 Linux 设计的程序更有可能工作)。如果您希望您的代码具有可移植性,我认为您希望它在所有这三种环境中都能工作。您还可以使用 VirtualBox 或 VMware 在您的机器上安装 Linux 并在虚拟机中开发您的代码。
【讨论】:
好吧,我下载 MSYS2 的唯一原因是为了 GTK。我确实使用 Linux 虚拟机在那个环境中编译和检查我的程序,而且我真的不需要使用 MSYS2 实际开发应用程序。话虽如此,我使用的 IDE 很难链接到我通过 pacman 安装的 GTK 库。我使用“pacman -Ss gtk3”并下载了列出的每个包。但要么我没有下载正确的包,要么下载的文件不是我的 IDE 期望的格式。 您可以将其作为第二个问题发布。请务必提供有关您如何设置开发环境以及您遇到的确切错误的具体细节,以便其他人能够重现您的问题或查看您做错了什么。 好的,谢谢。我不确定这个问题是否值得再次发帖,或者它本质上是否会被视为后续问题。 一个缺少恕我直言的包是 Tex 包(包含在 msys 中)【参考方案2】:在你的 msys-git 目录下找到 gcc 你就知道了。通常,它会丢失,在这种情况下,您应该保留完整的 mingw 设置。另外,如果你想要一个真正的 linux 仿真,请使用 cygwin,而不是 mingw,它只提供一个编译器(但不是 Linux 系统调用等)
【讨论】:
在 c:\msys64 中既有 mingw32 也有 mingw64 目录,但子目录与我的 c:\mingw 文件夹中的不同,这是我感到困惑的原因。 你在 c:\msys64\mingw32 或 c:\msys64\mingw64 下有 gcc.exe 吗? (执行搜索,因为它可能在子文件夹下......) 至于实际学习 Linux,我为此使用了几个不同的实时环境。一个是“黑客:剥削的艺术”一书附带的旧版安装。我还有一个旧版本的 Kali Linux,Backtrack 5。我使用旧发行版的原因是我有几本书适合这些特定版本。 msys 安装基本上是我能找到下载 GTK 的唯一方法 所以你可以安全地使用这个 gcc 实例。这不是“更好的选择”,而是像其他任何一种都可以接受的选择。 关于 GTK,cygwin 是唯一真正的 linux 仿真。如果您有 cygwin 并安装了 apt-cyg,那么 apt-cyg install gtk+ 将安装 GTK,就像您熟悉 ubuntu 时使用 apt-get 一样。您还可以从 cygwin 安装程序安装软件包。以上是关于既然我有 msys2,我可以删除以前在 mingw 上安装的实例吗?的主要内容,如果未能解决你的问题,请参考以下文章