我正在使用GCC v4 +中提供的一些功能,并希望CMake找到GCC v4编译器,如果找不到它,则返回错误,说明需要GCC v4.
任何人都有关于如何做这样的事情的任何模块/想法?
谢谢.
使用try_compile()命令并尝试编译以下程序
#if __GNUC__ != 4 #error #endif int main() { return 0; }
实现gcc版本检查的完全不同(不一定更好)的方式是:
if(CMAKE_COMPILER_IS_GNUCXX) exec_program( ${CMAKE_CXX_COMPILER} ARGS --version OUTPUT_VARIABLE _compiler_output) string(REGEX REPLACE ".* ([0-9]\\.[0-9]\\.[0-9]) .*" "\\1" gcc_compiler_version ${_compiler_output}) message(STATUS "C++ compiler version: ${gcc_compiler_version} [${CMAKE_CXX_COMPILER}]") if(gcc_compiler_version MATCHES "4\\.[0-9]\\.[0-9]") message(FATAL_ERROR "foobar") ... if(gcc_compiler_version VERSION_GREATER "4.5.99") ... ...