Makefile CheckCxCompilerFlag或CheckCCompilerFlag可立即检查一组标志
我从Makefile CheckCxCompilerFlag或CheckCCompilerFlag可立即检查一组标志,makefile,cmake,Makefile,Cmake,我从cmake开始,我发现这个模块带有这个宏,文档说这个宏正在检查1个标志,但我还发现一组正常的标志工作起来就像使用1个标志一样好,例如 include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG("-std=c++11 -O3 -v" HAS_FLAG) if (HAS_FLAG) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -v") endif() 这对我来说很好,因为
cmake
开始,我发现这个模块带有这个宏,文档说这个宏正在检查1个标志,但我还发现一组正常的标志工作起来就像使用1个标志一样好,例如
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11 -O3 -v" HAS_FLAG)
if (HAS_FLAG)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -v")
endif()
这对我来说很好,因为它可以很容易地确定我在哪里为给定的平台或编译器设置标志,一个1对1的检查将很容易变得太繁琐和冗长而不方便
这是编写
CMakeLists.txt
的好方法吗?一次检查多个标志时可能存在缺点?此外,如果您的检查失败,您将无法确定是哪个标志导致了它-不,没有缺点。在此基础上展开;如果要确保某个标志不产生警告,可以像这样指定第一个参数(对于clang/gcc):
检查\u cxx\u编译器\u标志(“-Werror”)
check_cxx_compiler_flag("-Werror <flag>" <variable>)