Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile CheckCxCompilerFlag或CheckCCompilerFlag可立即检查一组标志_Makefile_Cmake - Fatal编程技术网

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>)