target_include_directories()的用法
时间: 2023-07-21 20:12:16 浏览: 84
`target_include_directories()` 函数用于向一个目标(如库或可执行文件)添加头文件搜索路径。其语法如下:
```
target_include_directories(target
[SYSTEM] [BEFORE]
<INTERFACE|PUBLIC|PRIVATE> [items1...]
[<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])
```
其中,`target` 参数指定目标名称;`SYSTEM` 参数用于将指定的头文件路径标记为系统路径(即避免编译器产生警告);`BEFORE` 参数用于将指定的头文件路径添加到已有路径的前面;`INTERFACE`、`PUBLIC` 和 `PRIVATE` 参数用于指定添加的头文件路径的可见性,其中:
- `INTERFACE` 表示头文件路径只对目标的依赖项可见,不对目标本身可见;
- `PUBLIC` 表示头文件路径对目标本身和其依赖项可见;
- `PRIVATE` 表示头文件路径只对目标本身可见,不对其依赖项可见。
最后的 `items` 参数可以是一个或多个目录路径,用于指定头文件的搜索路径。
例如,下面的代码将 `mylib` 库目标的头文件搜索路径添加到 `${PROJECT_SOURCE_DIR}/include` 目录和 `/usr/local/include` 目录下:
```
target_include_directories(mylib
PUBLIC
${PROJECT_SOURCE_DIR}/include
/usr/local/include
)
```
这样,其他依赖于 `mylib` 库的目标就可以使用这些头文件路径了。注意,这里使用了 `PUBLIC` 可见性,表示这些头文件路径不仅对 `mylib` 库自身可见,还对其依赖项可见。
阅读全文