【问题标题】:How to enable C++17 on Mac?如何在 Mac 上启用 C++17?
【发布时间】:2016-12-29 16:36:30
【问题描述】:

我可以在 Linux 上更新 gcc 以获得 -std=c++17 但在 Mac 上不能这样做。是否有我可以更新到的 Clang 版本或其他替代方法来在我的 Mac 上获取 C++17?请帮忙。谢谢。

【问题讨论】:

  • Mac 上也可以安装 gcc。

标签: c++ macos clang c++17 darwin


【解决方案1】:

如果存储库有一些复杂性,您可以从源代码安装 gcc(一点也不复杂)。

mac os X的安装过程,这里是linux。 希望对您有所帮助。

【讨论】:

    【解决方案2】:

    在我的 10.11 El Capitan、Xcode 7.3.1 上,clang 已更新为:

    Apple LLVM version 7.3.0 (clang-703.0.31)
    

    几乎等同于 llvm 3.8 版。 clang++没有-std=c++17选项,但是-std=c++1z,目前运行良好,虽然只支持C++1z的部分特性。

    对于 gcc,您可以通过以下方式安装一个非常新的:

    brew install gcc --HEAD
    

    现在将安装 gcc-6.1 (2016.8)。此 gcc 对 C++17 的支持有限,可以通过 -std=c++17 启用。


    一些更新:

    最近苹果clang对应的llvm版本不清楚,应该是3.9+或者4+。更多信息请查看this wiki page

    brew install gcc --HEAD 应该始终适用于 mac/homebrew,并为您提供具有许多实验性功能的尖端 gnu gcc。另一方面,普通的brew install gcc 现在应该安装支持大多数 c++17 功能的 gcc。

    对于语言标准参数,请为不同的编译器尝试 -std=c++17-std=c++1z,其中一个应该可以工作。

    【讨论】:

    • 谢谢。我尝试过并且工作过。必须在 Darwin 构建中使用 CXX=g++- 而不是 g++。
    【解决方案3】:

    也许您应该使用以下命令安装 xcode 命令工具:

    xcode-select --install
    

    【讨论】:

      【解决方案4】:

      v17 标准现在默认提供Xcode 10,提供标准和变体两种风格。

      通过构建设置:

      CLANG_CXX_LANGUAGE_STANDARD:C++17/GNU++17

      CLI:

      -std=c++17 partial support

      -std=gnu++17

      【讨论】:

      • 请注意,(IIUC)C++17 功能仍然是partially supported
      • 谢谢@FranklinYu!我更新了帖子以指出对 Clang 实现的部分支持。
      【解决方案5】:

      您需要先安装一个支持 C++17 标准的编译器。我只能推荐安装 gcc、clang 和 Apple 的 LLVM:

      • gcc 9 或 10
      • 叮当声 9 或 10
      • XCode LLVM 9.3 或更高版本

      PGI、Intel Compiler 等其他工具可能会工作,但我没有这些经验。

      gcc 和 clang 可以使用 homebrew 安装

      gcc:

      brew install gcc
      

      叮当

      brew install llvm
      

      您可以通过 App Store 获取 XCode。


      在 Mac 上,C++17 并行 STL 需要英特尔线程构建模块 (TBB)。

      安装 tbb 最简单的方法是通过自制软件:

      brew install tbb
      

      当使用 gcc 或 clang 从命令行编译时,不要忘记包含标志: -std=c++17

      【讨论】:

        【解决方案6】:

        Apple 的 Clang 已支持最新的 C++ 版本,但默认为旧版本。

        您所要做的就是在执行时在g++ 之后添加--std=c++17,使用g++ --std=c++17 <filename>.cpp 执行您的代码

        如果您使用代码运行器执行,请遵循:

        1. Code>Preferences>Settings 在设置顶部的搜索栏中输入code-runner.executormap

        2. 选择Edit in settings.json,打开一个Json文件文件

        3. 从这个settings.json 文件更改下面的示例中使用键cpp line:8 的行 "cpp": "cd $dir && g++ --std=c++17 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

        4。重启VSCode

        【讨论】:

          猜你喜欢
          • 2023-03-19
          • 1970-01-01
          • 2018-01-23
          • 1970-01-01
          • 2018-07-04
          • 1970-01-01
          • 2020-05-30
          • 2021-03-30
          相关资源
          最近更新 更多