Cómo escribir cmake para incluir características de C++11
g++ 4.8.2
cmake 2.8
Anteriormente, cuando escribía cmkae para compilar funciones de c++11, usaba esta línea:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
Pero siempre obtengo cc1plus: error: se informa la opción de línea de comando no reconocida "-std=c++11" .
Por lo tanto, set(QMAKE_CXXFLAGS "-std=c++11") o configuraciones similares no funcionarán.
Más tarde me di cuenta de que std=c++11 no era compatible con versiones anteriores.
ok
Pruebe el nuevo método de escritura directamente:
#CMakeLists.txtproyecto(prueba)
cmake_minimum_required (VERSIÓN 2.8)
aux_source_directory(.SRC_LIST)
add_executable(${PROJECT_NAME}${SRC_LIST})< / p>
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-.std =c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X )
if(COMPILER_SUPPORTS_ CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X) p >
set(CMAKE_CXX_FLAGS "${ CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(STATUS "El compilador ${CMAKE_CXX_COMPILER} no está compatible con C++ 11. Utilice otro compilador de C++.
")
endif()
Prueba el código c++11
//test.CC
usando el espacio de nombres std; p> p>
int main()
{
const std::vector
v(1); auto a = v [0 ];//a es tipo int