Windows Qt与MinGw或Visual Studios?

Ano*_*ous 27 windows compiler-construction qt

我正在尝试编译qt,并且面对两种选择是使用MinGw还是Visual Studio编译器?它们之间有什么区别,使用其中一个有什么优点/缺点吗?

Dav*_*eer 25

它们都是很好的工具.重要的是要知道他们并不一定能很好地融合在一起.也就是说,当您将库链接在一起时,它们必须使用相同的工具链.因此,在我看来,最好使用Visual Studio编译器(MSVC),因为它是Windows上的"一等公民"; 其他人在某种程度上被视为二等.

我的意思是你几乎可以指望使用MSVC以二进制形式提供第三方库,或至少使用MSVC提供构建指令.我们遇到很多问题,第三方库无法在MinGW中构建或者不存在构建指令,并且不得不进行大量的手动Makefile编辑等.如果使用MSVC,你更有可能"正常工作" .

这只是我们的经验(我们从MinGW开始); 你的旅费可能会改变.

  • 这就是我的第二段解释的内容.如果VS的成本是个问题,你可以使用免费的SDK - 它只是你需要的编译器,而不是IDE.你仍然可以使用Qt Creator作为你的IDE,只需告诉它使用MSVC工具链. (4认同)
  • 但是如果你已经在Qt SDK中安装了MinGw,你为什么要使用视觉工作室? (2认同)

dte*_*ech 7

MinGW 使用 GCC,而 GCC 比 MSVC 有一个显着的优势——它是可移植的。MSVC 仅限于 Microsoft 平台,GCC 支持几乎所有内容,包括 8 位嵌入式 CPU。这意味着您可以使用相同的指令并跨不同平台编译扩展。

此外,MinGW 结构紧凑、安装快速,甚至还有一个版本与 Qt 捆绑在一起。与 MSVC 不同,它甚至不能独立使用,你必须安装 Visual Studio,它本身会安装一堆你不需要但不能选择退出的垃圾。

更新 现在可以在没有 VS 的情况下获得 MS 编译器,也就是 MS Build Tools。此外,如果您想为 Windows 构建 Chromium(又名 QtWebEngine),您必须使用 MSVC,这是谷歌强加的限制,因为它们仅支持使用平台原生编译器进行构建。

最后但并非最不重要的一点是,您可以获得 MSYS2,它有一个带有 MinGW 的存储库,并为其构建了大量现成的静态和动态库,因此您可以避免繁琐且经常容易出错的构建过程。

更新仅供参考,对于 VS 构建工具 2019,仅 C++ 编译器就占用了大约 4.5 GB 的空间,如果您只需单击“C++ 构建工具”并将其保留为默认值,则大约为 8 GB。相比之下,GCC 9.x 大约为 150 mb。事实上,仅 MSVC 编译器就比我多年来采用的整个广泛的包集合还要大,加上它们的依赖项,总共超过 200 个包。此外,我想说 MSYS 为我发现自己需要的大约 98% 的库和工具提供了包,剩下的 2% 包括它拥有但没有以适合我的用例的方式配置的库。不用说,数据包管理器使保持版本最新变得微不足道。