CMake系列讲解(入门篇)1.5 基础命令CMake-target_include_directories()

5. target_include_directories

5.1 命令格式:

c 复制代码
target_include_directories(<target> [SYSTEM] [AFTER|BEFORE]
  <INTERFACE|PUBLIC|PRIVATE> [items1...]
  [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])

该命令用于为指定的目标(target)添加包含目录(include directories)。指定编译目标时需要搜索头文件的路径,以确保编译器可以找到所需的头文件,这对于创建 CMake 项目中的库和可执行文件非常有用,因为它们可能依赖于其他模块或库的头文件。

5.2 参数说明

  • target:要添加包含目录的目标名称。
  • SYSTEM:可选参数,指定被包含的目录是系统目录。这会告诉编译器将这些目录视为系统的标准头文件目录。
  • BEFORE:可选参数,指定将包含目录添加到已有的包含目录之前,而不是默认的添加到后面。
  • INTERFACE、PUBLIC、PRIVATE :指定包含目录的可见性级别。
    INTERFACE :表示包含目录将应用于目标及其使用该目标的其他目标。
    PUBLIC :表示包含目录将应用于目标本身和使用该目标的其他目标。
    PRIVATE:表示包含目录仅应用于目标本身。
  • items:指定要添加的包含目录路径,可以是目录名、绝对路径或相对路径。

5.3 示例

使用绝对路径:

c 复制代码
target_include_directories(target_name PRIVATE /path/to/directory)

在上述示例中,这将为指定的目标(target_name)添加一个私有的包含目录,即只有该目标及其依赖项可以访问这个目录。

使用相对路径:

c 复制代码
target_include_directories(target_name PRIVATE relative/path/to/directory)

这将使用相对于当前CMakeLists.txt文件所在路径的相对路径来指定包含目录。

此外,你也可以一次添加多个查找目录:

c 复制代码
target_include_directories(target_name PRIVATE
    directory1
    directory2
    ...
)

这种用法允许一次性指定多个包含目录。

相关推荐
历程里程碑2 分钟前
Linux 9:GCC编译全流程详解
linux·运维·服务器·c语言·笔记·编辑器·vim
他人是一面镜子,保持谦虚的态度6 分钟前
ubuntu 18.04 压缩 激光雷达点云和图像 topic,并录制bag 数据包
linux·运维·ubuntu
Byte不洛7 分钟前
Linux 多线程编程入门:线程栈、TLS、互斥锁与条件变量详解
linux·操作系统·多线程·pthread·线程互斥
爱吃生蚝的于勒9 分钟前
【Linux】进程信号的保存(二)
linux·运维·服务器·c语言·数据结构·c++·算法
HalvmånEver10 分钟前
Linux:线程的概念、与进程区别及内核实现(线程一)
java·linux·运维
Linux蓝魔12 分钟前
mysql-redis-kafka-es-ngnix安装调试
linux·服务器·mysql·kafka·es
weixin_4624462314 分钟前
在 Linux / macOS 下使用 Docker 快速部署 PaddlePaddle + 运行 PaddleOCR 表格 PDF 解析示例
linux·macos·docker·paddleocr
BEGCCYD16 分钟前
kali最新版不显示鼠标
linux·网络安全
Bdygsl18 分钟前
Linux小程序(2)—— bash模拟实现
linux·bash
嵌入式-老费26 分钟前
Linux camera驱动开发(开篇)
linux·运维·驱动开发