C++ - 是否值得在 Windows 上使用 GCC 而不是 MSVC?

标签 c++ visual-c++ gcc

<分区>

我已经阅读了一些关于 GCC 与 MSVC 以及这些编译器的开发的问题,例如 GCC worth using on Windows to replace MSVC? , Visual Studio or GCC?GCC vs MS C++ compiler for maintaining API backwards binary compatibility .但这些都是非常过时的问题(2011 年)。随着新的 c++14 特性的出现,两个编译器之间的平衡开始了。在 Windows 上使用 Code::Blocks 是否仍然值得使用 Microsoft Visual Studio 的所有优点,例如:

  • 支持使用 MFC、ATL、DirectX 和其他有用的 Microsoft 库的原生 Windows 库。
  • 出色的调试功能,尤其是在使用反汇编 View 时(它有很多有用的功能)。

在我读过的大多数主题中,他们总是说 GCC 代码生成比 MSVC 的好,但在这方面的差异开始缩小。 GCC 中的代码生成仍然更好吗?最新的 C++ 特性,哪些是领先的?

与 MSVC 相比,我看到使用 GCC 的最大优势在于:

  • 它是开源的,这使得自定义编译器代码成为可能。
  • 更容易制作可移植代码。
  • 它是免费的。
  • ???更好的代码生成???

GCC 上的 C++14 特性:https://gcc.gnu.org/projects/cxx1y.html

MSVC RTM 上的 C++11 和 C++14 功能:http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx

最佳答案

是的。

虽然 MSVC 在更新的 C++ 标准方面取得了一些进步,但它仍然可悲落后,即使在 C++98 状态(很方便地从该状态页面中排除) ).

根据我最近读到的内容,MSVC 团队甚至没有具体的计划来解决一些旧问题,例如具有名称查找和模板实例化。

现在,当您可以使用带有 clang 的 MSVC 作为编译器时,这可能是停止使用 GCC 的原因。但是,就我的目的而言,我发现 clang 的诊断功能很差(有时代码也很差),所以我仍然使用 GCC 作为我的主要编译器,只使用 clang 作为备份。

正如@Cheersandhth 所说,使用两个编译器很好。尽管也许可以看看英特尔的编译器。

关于C++ - 是否值得在 Windows 上使用 GCC 而不是 MSVC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31529327/

相关文章:

c++ - 返回一个 void* 数组

c++ - 为什么 VC++ 2013 RC 不支持 C99 指定的初始值设定项?

visual-c++ - 如何使用运行对象表 (ROT) 在两个 COM 对象之间进行通信?

c++ - 按字母顺序排列字符串数组(甚至 *ptr)

c++ - 使用 gcc 或 clang 自动生成 header

c++ - 有人可以告诉我为什么这段代码不打印任何东西吗?

c++ - 在 ffmpeg 中创建缓冲区源

c - 使用 libfreenect 编译代码时出现链接器错误

c++ - 继承类型定义?

c - 如何管理共享库中的 undefined symbol