簡體   English   中英

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

[英]How to enable C++17 on Mac?

我可以在 Linux 上更新 gcc 以獲取-std=c++17 ,但在 Mac 上不能這樣做。
是否有我可以更新到的 Clang 版本或其他替代方法來在我的 Mac 上獲取 C++ 17?

請幫忙。
謝謝。

在我的 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+。 查看此 wiki 頁面以獲取更多信息。

brew install gcc --HEAD應該始終適用於 mac/homebrew,並為您提供具有許多實驗性功能的尖端 gnu gcc。 另一方面,普通的brew install gcc現在應該安裝一個支持大多數 c++17 功能的 gcc。

對於語言標准參數,為不同的編譯器嘗試-std=c++17-std=c++1z ,其中一個應該可以工作。

現在, Xcode 10默認提供 v17 標准,提供標准和變體兩種風格。

通過構建設置:

CLANG_CXX_LANGUAGE_STANDARD :C++17/GNU++17

命令行:

-std=c++17部分支持
-std=gnu++17

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

如果存儲庫有一些復雜性,您可以從源代碼安裝 gcc(它一點也不復雜)。

mac os X的安裝過程,這里是linux的。 希望能幫助到你。

您需要先安裝支持 C++17 標准的編譯器。 我只能推薦安裝 gcc、clang 和 Apple 的 LLVM:

  • gcc 9 或 10
  • 鏗鏘聲 9 或 10
  • XCode LLVM 9.3 或更高版本

其他如 PGI、英特爾編譯器等可能會工作,但我沒有這些經驗。

gcc 和 clang 可以使用 homebrew 安裝

海灣合作委員會:

brew install gcc

brew install llvm

您可以通過 App Store 獲取 XCode。


在 Mac 上,C++17 並行 STL 需要英特爾線程構建模塊 (TBB)。

安裝 tbb 最簡單的方法是通過自制軟件:

brew install tbb

當使用 gcc 或 clang 從命令行編譯時,不要忘記包含標志:-std=c++17

也許您應該使用以下命令安裝 xcode 命令工具:

xcode-select --install

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM