在CMakeLists.txt文件中,使用CMAKE_CXX_COMPILER_VERSION变量获取GCC版本号,并设置版本要求: 代码语言:txt 复制 if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4) message(FATAL_ERROR "GCC version 4+ is required") endif() 这样,在构建项目时,CMake会检...
add_extra_compiler_option(-Winit-self) if(CV_GCC AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0) AND (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0)) add_extra_compiler_option(-Wno-psabi) endif() if(HAVE_CXX11) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT ENABLE_PRECOMPILED...
if(CMAKE_CXX_COMPILER_IDSTREQUAL"GNU") if(CMAKE_CXX_COMPILER_VERSIONVERSION_LESS"4.8.2") message(FATAL_ERROR"Insufficient gcc version") endif() elseif(CMAKE_CXX_COMPILER_IDSTREQUAL"Clang") if(CMAKE_CXX_COMPILER_VERSIONVERSION_LESS"3.8") ...
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${MIN_GCC_VER}") message(FATAL_ERROR "gcc >=${MIN_GCC_VER} required") else() message(STATUS "gcc ${CMAKE_CXX_COMPILER_VERSION} detected") endif() endif() # set some internal vars if (NOT "${CMAKE_C_FLAGS}" STREQUAL "") ...
message(STATUS "CMAKE_CXX_COMPILER_ID = $CACHE{CMAKE_CXX_COMPILER_ID}") ${XX} 找不到局部变量时会去找缓存变量,如果缓存变量也找不到,就会报错。 if (DEFINED myvar) 会判断 myvar 是否被定义,而 if (myvar) 会判断 myvar 的值是否为空,前者即使 myvar 的值为空也会返回 true。 if (DEFINED ...
CMAKE_C_COMPILER_VERSION VERSION_LESS "4.4.0") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=i686") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=i686") # query_response_time.cc causes "error: unable to find a register to spill" SET(PLUGIN_QUERY_RESPONSE_TIME NO CACHE ...
if(CMAKE_VERSIONVERSION_LESS"3.1")message(FATAL_ERROR"CMake version too old.")endif() 看示例即可,与大部分编程语言的形式相同 设置C++标准版本 set(CMAKE_CXX_STANDARD11) 依然使用set命令,只不过是修改另一个缓存变量 这一步可以不用执行,CMake默认的标准是C++ 14 ...
CMAKE_CXX_COMPILER:CMAKE_C_FLAGS:编译C文件时的选项,如-g;也可以通过add_definitions添加编译选项EXECUTABLE_OUTPUT_PATH:可执行文件的存放路径LIBRARY_OUTPUT_PATH:库文件路径CMAKE_BUILD_TYPE::build 类型(Debug, Release, ...),CMAKE_BUILD_TYPE=Debug...
当这个变量值为Release的时候,工程会使用变量CMAKE_CXX_FLAGS_RELEASE和CMAKE_CFLAGS_RELEASE选项生成Makefile。 现在假设项目中只有一个文件main.cpp,下面是一个可以选择生成debug版和release版的程序的CMakeList.txt: 1 PROJECT(main) 2 CMAKE_MINIMUM_REQUIRED(VERSION 2.6) ...
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 1. 2. CMAKE_CXX_FLAGS_DEBUG: 设置编译类型为Debug时的编译选项; CMAKE_CXX_FLAGS_RELEASE: 设置编译类型为Release时的编译选项; CMAKE_CXX_COMPILER 设置C++编译器。 # 设置C++编译器为g++ ...