【cmake】——include_directories 和target_include_directories的区别

CMake中,`include_directories` `target_include_directories` 都用于指定头文件的搜索路径,但它们的使用方式适用范围有所不同。 1. `include_directories`: - 这是一个全局命令,会将指定的目录添加到所有后续的编译任务中。 - 它的语法如下: ```cmake include_directories(directory1 directory2 ...) ``` - 例如: ```cmake include_directories(/usr/include/myproject) ``` - 这种方式适用于简单的项目,但对于大型项目或需要更精细控制的项目来说,可能不够灵活。 2. `target_include_directories`: - 这是一个针对特定目标的命令,会将指定的目录添加到指定的目标中。 - 它的语法如下: ```cmake target_include_directories(target PUBLIC|PRIVATE|INTERFACE directory1 directory2 ...) ``` - 例如: ```cmake target_include_directories(MyApp PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) ``` - 这种方式更灵活,可以为不同的目标指定不同的包含目录,并且可以通过PUBLIC、PRIVATEINTERFACE关键字来控制包含目录的可见性。 - PUBLIC:包含目录会被添加到目标及其依赖项中。 - PRIVATE:包含目录只会被添加到目标中,不会传递给依赖项。 - INTERFACE:包含目录只会被添加到依赖项中,不会添加到目标中。 总结: - `include_directories` 适用于简单的项目,使用简单但不够灵活。 - `target_include_directories` 适用于复杂的项目,提供更精细的控制更高的灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值