target_include_directories
直奔主题
target_include_directories 命令格式
target_include_directories( [SYSTEM] [AFTER|BEFORE]
<INTERFACE|PUBLIC|PRIVATE> [items1…]
[<INTERFACE|PUBLIC|PRIVATE> [items2…] …])
该命令用于为指定的目标(target)添加包含目录(include directories)。指定编译目标时需要搜索头文件的路径,以确保编译器可以找到所需的头文件,这对于创建 CMake 项目中的库和可执行文件非常有用,因为它们可能依赖于其他模块或库的头文件。
参数说明
target:要添加包含目录的目标名称。
SYSTEM:可选参数,指定被包含的目录是系统目录。这会告诉编译器将这些目录视为系统的标准头文件目录。
BEFORE:可选参数,指定将包含目录添加到已有的包含目录之前,而不是默认的添加到后面。
INTERFACE、PUBLIC、PRIVATE:指定包含目录的可见性级别。
INTERFACE:表示包含目录将应用于目标及其使用该目标的其他目标。
PUBLIC:表示包含目录将应用于目标本身和使用该目标的其他目标。
PRIVATE:表示包含目录仅应用于目标本身。
items:指定要添加的包含目录路径,可以是目录名、绝对路径或相对路径。
示例
1、使用绝对路径:
target_include_directories(target_name PRIVATE /path/to/directory)
在上述示例中,这将为指定的目标(target_name)添加一个私有的包含目录,即只有该目标及其依赖项可以访问这个目录。
2、使用相对路径:
target_include_directories(target_name PRIVATE relative/path/to/directory)
这将使用相对于当前CMakeLists.txt文件所在路径的相对路径来指定包含目录。
3、此外,你也可以一次添加多个查找目录:
target_include_directories(target_name PRIVATE
directory1
directory2
…
)
这种用法允许一次性指定多个包含目录。