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


基础命令target_include_directories()

〓〓〓〓〓〓〓〓踏实学CMake总目录〓〓〓〓〓〓〓〓〓〓


5. target_include_directories

5.1 命令格式:

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 示例

使用绝对路径:

target_include_directories(target_name PRIVATE /path/to/directory)

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

使用相对路径:

target_include_directories(target_name PRIVATE relative/path/to/directory)

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

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

target_include_directories(target_name PRIVATE
    directory1
    directory2
    ...
)

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


附:返回总目录的传送门如下:

〓〓〓〓〓〓〓〓踏实学CMake总目录〓〓〓〓〓〓〓〓〓〓

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: target_include_directoriesCMake 的一个命令,用于指定目标文件的头文件目录。使用方法如下: target_include_directories(<target> [BEFORE|AFTER] [INTERFACE|PUBLIC|PRIVATE] [item1 [item2 [...]]]) 其中,<target> 是目标文件的名称,[BEFORE|AFTER] 指定在其他 include_directories 命令之前或之后执行,[INTERFACE|PUBLIC|PRIVATE] 指定头文件目录的作用域,item1、item2 等则是头文件目录的路径。 ### 回答2: target_include_directoriesCMake中的一个命令,用于为特定的目标(target)指定包含目录。这个命令告诉CMake编译器在编译特定目标时应该查找的头文件的路径。 使用target_include_directories可以为一个或多个目标设置包含目录。其中,目标可以是可执行文件、静态库或动态库。 使用target_include_directories的一般语法如下: target_include_directories(target_name PUBLIC/PRIVATE/INTERFACE include_directory1 include_directory2 ...) - target_name是要设置包含目录的目标的名称。 - PUBLIC表示指定的目录将被应用于指定的目标以及依赖于该目标的其他目标。 - PRIVATE表示指定的目录将仅适用于指定的目标。 - INTERFACE表示指定的目录将仅适用于依赖于该目标的其他目标。 通过将目录路径作为参数传递给target_include_directories,可以指定要包含的目录。可以通过空格分隔多个目录路径。 例如,假设我们有一个名为my_app的可执行文件目标,并且有一个名为include_dir的头文件目录。我们可以使用以下命令include_dir目录包含到my_app中: target_include_directories(my_app PUBLIC include_dir) 这将确保在编译my_app时,编译器将在include_dir目录中查找头文件。 总结来说,target_include_directories命令是用于为特定目标指定包含目录的命令。通过使用这个命令,我们可以告诉CMake编译器在编译特定目标时应该查找的头文件路径。 ### 回答3: target_include_directoriesCMake的一个命令,用于指定目标(target)的头文件搜索路径。头文件搜索路径是为了在编译期间能够正确找到被包含的头文件,以便程序可以成功编译。 在CMake中,我们可以使用target_include_directories命令来为指定目标添加头文件搜索路径。具体使用方式如下: target_include_directories(target_name PUBLIC/PRIVATE/INTERFACE [directory1 directory2 ...]) 其中,target_name表示目标的名称;PUBLIC/PRIVATE/INTERFACE表示指定这些头文件搜索路径的属性。PUBLIC表示这些路径既会应用于当前目标,也会传递给当前目标的依赖项;PRIVATE表示这些路径仅应用于当前目标;INTERFACE表示这些路径仅会传递给当前目标的依赖项。 在方括号内,我们可以列举多个路径,每个路径表示一个头文件搜索路径。这些路径可以是绝对路径,也可以是相对路径。 例如,如果我们希望为名为my_lib的目标添加头文件搜索路径,可以使用以下语句: target_include_directories(my_lib PUBLIC include) 这样,CMake将会在编译期间将include路径添加到my_lib的头文件搜索路径中,以便编译器能够成功找到include文件夹下的头文件。 总之,target_include_directories命令CMake中用于指定目标的头文件搜索路径,这个命令非常重要,可以确保在编译期间能够正确找到被包含的头文件,确保程序可以成功编译

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下马农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值