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依赖关系图_Cmake - Fatal编程技术网

自定义目标的CMake依赖关系图

自定义目标的CMake依赖关系图,cmake,Cmake,CMake的--graphviz选项是否应该获得对自定义目标的依赖 示例CMakeLists.txt文件: cmake_minimum_required(VERSION 2.8) add_executable(target0 test.cpp) add_dependencies(target0 target1) add_custom_target(target1 ALL COMMAND echo hello ) “cmake--graphviz=test.dot”的输出文件是: digra

CMake的
--graphviz
选项是否应该获得对自定义目标的依赖

示例
CMakeLists.txt
文件:

cmake_minimum_required(VERSION 2.8)
add_executable(target0 test.cpp)
add_dependencies(target0 target1)
add_custom_target(target1 ALL
  COMMAND echo hello
)
“cmake--graphviz=test.dot”的输出文件是:

digraph GG {
node [
  fontsize = "12"
];
    "node3" [ label="target0" shape="house"];
}
没有任何
target1

的痕迹,清楚地表明:

--graphviz=[文件]

生成一个graphviz输入文件,该文件将包含项目中所有的库和可执行的依赖项。有关更多详细信息,请参阅CMakeGraphVizOptions.cmake的文档


因此,据我所知,您的自定义目标既不是-也不是库,也不是可执行文件,因此无法包含在生成的图形中。

因为有些人可能会在这个问题上绊倒

使用CMake 3.17,现在可以包括自定义目标
(相关问题)

GRAPHVIZ_自定义_目标

设置为TRUE以在生成的图形中包括自定义目标。
必填项:否
默认值:FALSE

GRAPHVIZ_忽略_目标

用于从生成的图形中排除的目标名称的正则表达式列表。
必填项:否
默认值:空


在创建目标之前添加依赖项
?CMake不抱怨吗?好的地方,确实看起来很奇怪,但我的CMake没有抱怨。无论如何,在文件末尾添加依赖项并没有任何区别。您的CMake版本是什么?可以在CMake 2.8.12.2上复制。因为我刚刚开始使用CMake,所以很难从构建图表的角度理解可执行文件和自定义目标之间的区别。