Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/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
如何检查CMake生成目录生成类型是Debug还是Release?_Cmake - Fatal编程技术网

如何检查CMake生成目录生成类型是Debug还是Release?

如何检查CMake生成目录生成类型是Debug还是Release?,cmake,Cmake,我知道可以使用-DCMAKE\u build\u type=Release或-DCMAKE\u build\u type=Debug设置生成类型,但是是否有命令行方法来检查/确认CMake正在使用哪种生成类型?您可以从build dir中的CMakeCache.txt文件中grep该值。出于好奇,您想做什么?除了查看cmakache.txt之外,您还可以在构建目录中使用 cmake -L . | grep CMAKE_BUILD_TYPE ... CMAKE_BUILD_TYPE:STRING=

我知道可以使用
-DCMAKE\u build\u type=Release
-DCMAKE\u build\u type=Debug
设置生成类型,但是是否有命令行方法来检查/确认CMake正在使用哪种生成类型?

您可以从build dir中的CMakeCache.txt文件中grep该值。出于好奇,您想做什么?

除了查看
cmakache.txt
之外,您还可以在构建目录中使用

cmake -L . | grep CMAKE_BUILD_TYPE
...
CMAKE_BUILD_TYPE:STRING=Release
或者,您也可以将自定义目标添加到
CMakeLists.txt
中,以便执行此操作

add_custom_target(print_build_type COMMAND ${CMAKE_COMMAND} -E echo ${CMAKE_BUILD_TYPE})
然后会用类似的方式调用

$ make --silent print_build_type
Release
但可能是空的

下面是一个更通用的版本,使用:

添加自定义目标(
打印\生成\类型
命令${CMAKE_COMMAND}-E echo$$
)
参考资料


我正在使用cmake目录,我希望能够确定我是处于调试阶段还是发布阶段。
add_custom_target(
    print_build_type 
    COMMAND ${CMAKE_COMMAND} -E echo $<$<CONFIG:>:Undefined>$<$<NOT:$<CONFIG:>>:$<CONFIG>>
)