Compiling

如何將 C++11 設置為我的預設編譯器?

  • January 28, 2018

我正在使用 Ubuntu。

使用 C++ 程式時,nullptr編譯器無法辨識關鍵字。

它說它沒有在這個範圍內聲明

它不起作用,即使我設置了 flag -std=c++11

C++11 不是編譯器,而是由許多流行的編譯器實現的 ISO 標準。Ubuntu 上的預設 C++ 編譯器g++來自 GNU Compiler Collection。正如您在問題中提到的,該-std=c++11標誌啟用了 C++11g++以及 Clang 中的功能,Clang 是 Ubuntu 上可用的另一個 C++ 編譯器。

當您的編譯器未啟用或不支持 C++11 支持時,將顯示您看到的錯誤消息。GCC 4.6 是第一個支持的版本nullptr,所以如果您使用的是早期版本,您將無法使用nullptr. 用於g++ --version獲取安裝的版本。

假設您至少使用 GCC 4.6,您將需要確定為什麼您的建構系統沒有將正確的標誌傳遞給編譯器。例如,在 CMake 中,您將需要使用:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

引用自:https://unix.stackexchange.com/questions/165603