Compiling
如何將 C++11 設置為我的預設編譯器?
我正在使用 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")