如何在Mac上启用C ++ 17?

时间:2016-08-23 01:55:14

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

我能够在Linux上更新gcc以获得-std = c ++ 17,但在Mac上却无法做到这一点。是否有一个版本的Clang我可以更新或在我的Mac上获得C ++ 17的其他替代方案?请帮忙。谢谢。

6 个答案:

答案 0 :(得分:18)

在我的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启用。

一些更新:

相应的llvm版Apple's clang最近并不清楚,应该是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,其中一个应该有效。

答案 1 :(得分:2)

如果存储库存在一些复杂情况,您可以从源代码安装gcc(它根本不复杂)。

mac os X的安装过程,此处为linux。 希望它有所帮助。

答案 2 :(得分:2)

v17标准现在默认提供Xcode 10,提供标准和变体形式。

通过构建设置:

CLANG_CXX_LANGUAGE_STANDARD :C ++ 17 / GNU ++ 17

CLI:

-std = c ++ 17

-std = gnu ++ 17

答案 3 :(得分:1)

您需要首先安装支持C ++ 17标准的编译器。我只能建议安装gcc,clang和Apple的LLVM:

  • gcc 9或10
  • c 9或10
  • XCode LLVM 9.3或更高版本

其他诸如PGI,Intel Compiler等也可能起作用,但是我没有这些经验。

gcc和clang可以使用自制软件安装

gcc:

brew install gcc

c

brew install llvm

您可以通过App Store获取XCode。


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

安装tbb的最简单方法是通过自制程序:

brew install tbb

使用gcc或clang从命令行进行编译时,不要忘记添加该标志: -std = c ++ 17

答案 4 :(得分:0)

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

xcode-select --install

答案 5 :(得分:0)

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

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

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

  1. g++ --std=c++17 <filename>.cpp 在设置顶部的搜索栏中输入 Code>Preferences>Settingsenter image description here

  2. 选择code-runner.executormap,打开一个Json文件 enter image description here

  3. 从此Edit in settings.json文件更改以下示例中带有键settings.json cpp的行 line:8

4.重启 VSCode