1. 程式人生 > >關於make提示must be enabled with the -std=c++11 or -std=gnu++11 compiler options

關於make提示must be enabled with the -std=c++11 or -std=gnu++11 compiler options

在make後,出現錯誤,提示如下:

/usr/include/c++/4.8/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
 #error This file requires compiler and library support for the \
  ^
原因是寫的CMakeLists.txt檔案沒有新增對C++11的支援,所以在工程目錄下的CMakeLists.txt中新增以下語句:
SET( CMAKE_CXX_FLAGS "-std=c++11 -O3")

然後編譯即可通過。

其中,引數CMAKE_CXX_FLAGS含義是: set compiler for c++ language
而後面的-O3(是字母opq的o,大寫的歐)是用來調節編譯時的優化程度的,最高為-O3,最低為-O0(即不做優化)

-Ox這個引數只有在CMake -DCMAKE_BUILD_TYPE=Release時有效,因為debug 版的專案生成的可執行檔案需要有除錯資訊並且不需要進行優化,而 release 版的不需要除錯資訊但需要優化