[英]Windows Qt with MinGw or Visual Studios?
我正在尝试编译 qt,并且面临使用 MinGw 或 Visual Studio 编译器的两种选择? 它们之间有什么区别,使用其中一个有什么优点/缺点吗?
它们都是很好的工具。 要知道的重要一点是,他们不一定能一起玩得很好。 也就是说,当您将库链接在一起时,它们都必须使用相同的工具链。 出于这个原因,在我看来,最好使用 Visual Studio 编译器 (MSVC),因为它是 Windows 上的“一等公民”; 其他人在某种程度上被视为二等舱。
我的意思是,您几乎可以依靠使用 MSVC 以二进制形式提供的第三方库,或者至少使用 MSVC 提供构建指令。 我们遇到了很多问题,第三方库无法在 MinGW 中构建,或者没有构建指令,并且必须进行大量手动 Makefile 编辑等。如果使用 MSVC,您更有可能让事情“正常工作” .
这只是我们的经验(我们从 MinGW 开始); 你的旅费可能会改变。
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% 包括它拥有但没有以适合我的用例的方式配置的库。 不用说,数据包管理器使保持版本最新变得微不足道。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.