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

时间:2015-07-21 02:19:44

标签: 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的所有优点,例如:

  • 本机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

2 个答案:

答案 0 :(得分:9)

尽管MSVC已经使某些在新的C ++标准方面取得了进展,但它仍然可悲落后,即使在C ++ 98状态下(从该状态页面中被方便地排除) )。

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

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

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

答案 1 :(得分:7)

详细阐述的问题是对意见的公开邀请;甚至有一些关于"最好的IDE"等等,标题中提出的问题,

  

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

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

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

  • g ++有助于学习。

Windows中g ++的主要问题是它的API绑定只能完全覆盖Windows XP API,而 nothing 之后很少。