【问题标题】:Clang or GCC compiler for c++ 11 compatibility programming on Windows?Windows 上用于 c++ 11 兼容性编程的 Clang 或 GCC 编译器?
【发布时间】:2015-09-12 08:02:03
【问题描述】:

我想知道哪个编译器更适合在 Windows 操作系统 (8.1) 上使用,因为它与 c++11(以及更高版本的 14)函数、liberies 和特性(如 lambdas)兼容,并且使用起来也很舒服(错误更少)。

我是一名大学生,因此我不会从产品角度考虑这个主题(尽管我确实喜欢编写代码,而不仅仅是为了我的学习项目)。

如果重要的话,我目前正在使用 eclipse luna IDE。

【问题讨论】:

    标签: windows c++11 gcc clang compatibility


    【解决方案1】:

    注意compiler != IDE

    VC++ 是 Windows 上最流行的一种,depending on its version 它对 C++11 特性有很好的支持。查看 msdn 博客上的列表,了解是否有您需要的一切。

    Gcc 也被移植到 Windows,您可以安装 MinGW 来使用它(撰写本文时为 4.8.1.4)。在 C++11 上是 pretty complete

    Clang 也可用于 Windows 平台,它也是 C++11 支持上的 complete(加上它具有良好的诊断消息),但请注意,您将不得不使用另一个链接器,因为 clang 不附带一个(尽管正在努力编写它:http://lld.llvm.org/

    我上面引用的所有编译器都非常稳定,但根据我的经验,如果您正在寻找最新和最强大的 C++11/14/17 功能,您可能只想选择 gcc 或 clang (VC++添加对最新功能的支持较慢,编译器正在进行大规模更新以进行现代化)。请记住,这些是编译器,而不仅仅是IDE,IDE 是一个前端支持程序,它使用编译器来编译文件。

    【讨论】:

    • 我知道 IDE 和编译器之间的区别,我只是想知道是否有适用于 c++11 的舒适且推荐的 IDE 以及不同的说明,一个好的编译器。我目前正在将 Eclipse Luna 与 mingw 4.9.2 一起使用,只是想知道是否有更好的选择(因为 Clang 支持更多选项,并且与其他 IDE 相比,Ecplise 缺乏一些功能)
    • 所以我的问题基本上是有没有比 Eclipse Luna IDE + GCC MinGW 4.9.2 编译器在 Windows 上进行 c++11 编程更好的组合??
    • 对于编译器,我已经在上面的帖子中列出了不同之处。作为IDE,这是个人品味的问题。有些人甚至更喜欢在 Windows 环境中使用个性化的 vim 或 sublime 文本,所以这确实是一个主观的答案。
    【解决方案2】:

    要设置 C++11 编译器,我建议安装 MSYS2,它有一个包管理器 (pacman),可以安装新版本的 GCC、GDB、Clang 和许多库,如 SDL、Lua 等。非常简单也可以使用。

    就 GCC 与 CLang 而言 - 我真的很努力让 CLang 工作(这可能比 GCC 更快、更友好 - 产生更好的警告等),但失败了。问题是 CLang(与 MSYS2 一起提供)被硬编码为使用 GCC 链接器,这在使用 libstdc++(来自 GCC 的标准实现)时会产生一些奇怪的链接器错误。 libc++(设计用于 CLang 的新实现)在 Windows 上也不适用于我。 因此,您要么尝试从源代码构建 CLang,并希望某些配置适用于 C++11 库,要么坚持使用开箱即用的 GCC

    作为IDE,我建议看看CLion。它非常舒适(比 Visual Studio、IMO 更加用户友好和直观)。只需安装它并将其指向 MSYS2 的 mingw64(或 mingw32)文件夹,它会自动为您检测所有内容。

    它只适用于 CMake 项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      • 2012-10-18
      • 1970-01-01
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 2017-10-17
      相关资源
      最近更新 更多