我在CMake中有2个项目L和A,说L是一个库,A是一个依赖L的应用程序。文件夹层次结构如下所示:一种CMakeLists.txt +标头+ src大号CMakeLists.txt +标头+ src子级标头+ src文件现在,就我所知道的包含目录而言,我需要在L / CMakeLists.txt / include_directories()中指定subL,因此L中的其他文件可以使用#include“ mySubLHeaderFile.h”或#include 。现在,如果我想从A项目的文件中引用subL的头文件,并能够仅使用#include“ mySubLHeaderFile.h”或#include 引用此subL文件,我注意到我需要在A / CMakeLists.txt / include_directories()中重新指定subL。这是正常现象吗? include_directories()是否不是从依赖项目中继承的?------编辑1 -------请注意,我在A和L上方有一个顶级CMakeLists.txt。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 是的,这是CMake的include_directories命令的标准行为。如果要将属性传播到依赖项,请使用版本3中已成为标准的target_include_directories命令。特别是,客户端代码所需的带有标头的位置应位于PUBLIC或INTERFACE部分中。如果SubL还需要在其中包含标头,请使用PUBLIC。查看整个target_*命令家族,以将属性传播到依赖项。 (adsbygoogle = window.adsbygoogle || []).push({});
10-06 01:53