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

Nig*_*een 8 c++ gcc visual-c++

我已经阅读了一些关于GCC vs MSVC的问题以及这些编译器的开发,比如GCC值得在Windows上用来取代MSVC?,Visual Studio还是GCC?GCC vs MS C++编译器用于维护API向后二进制兼容性.但这些都是过时的问题(2011年).随着新的c ++ 14功能的出现,两个编译器之间开始平衡.是否仍然值得使用Windows上的Code :: Blocks以及使用Microsoft Visual Studio的所有优点,例如:

  • 本机Windows库,支持使用MFC,ATL,DirectX和其他有用的Microsoft库.
  • 出色的调试功能,尤其是在使用反汇编视图时(它具有许多有用的功能).

在我读过的大多数主题中,他们总是说GCC代码生成比MSVC更好,但是这个问题的差异开始缩小.GCC的代码生成是否更好?那些最新的c ++功能呢,它们中的哪一个领先?

我在使用GCC与MSVC时看到的最大优势是:

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

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

o11*_*11c 9

是.

虽然MSVC取得了一些对新的C++标准方面的进展,但仍远远落后,甚至在C++ 98的状态(这是方便从状态页面除外).

从我最近阅读的内容来看,MSVC团队甚至没有具体的计划来修复一些旧问题,例如使用名称查找和模板实例化.

现在,当你可以使用带有clang的MSVC作为编译器时,这可能是停止使用GCC的原因.但是,就我的目的而言,我发现clang具有更低劣的诊断功能(有时还有劣质代码),所以我仍然使用GCC作为我的主要编译器,只使用clang作为备份.

正如@Cheersandhth所说,使用两个编译器是件好事.虽然可能看看英特尔的编译器.

  • @ user2565020:可以.对于我的光线跟踪器,GCC肯定比clang和MSVC更好(GCC代码快了大约10%).但其他程序可能更喜欢clang(或MSVC)的优化器和代码生成器. (2认同)

Che*_*Alf 7

详细阐述的问题是对意见的公开邀请; 甚至有一些关于"最佳IDE"的挑衅等等.即使如此,标题中提出的问题,

" C++ - GCC [即g ++]现在值得在Windows上使用吗?

有一个简单的基于事实的答案,即是的,因为

  • 在可能的情况下,将代码暴露给至少两个编译器是个好主意,例如组合Visual C++和g ++,以及

  • g ++有利于学习.

Windows中g ++的主要问题是它的API绑定只能完全覆盖Windows XP API 没有 之后很少.