target_include_directories()能否一次性为两个目标添加文件路径
时间: 2023-07-21 18:12:17 浏览: 131
可以使用 `target_include_directories()` 函数一次性为多个目标添加头文件搜索路径。只需要在函数调用时,将需要添加路径的目标名称一并传递即可。
例如,下面的代码将 `mylib` 和 `mylib_shared` 两个目标的头文件搜索路径一次性添加到 `${PROJECT_SOURCE_DIR}/include` 目录和 `/usr/local/include` 目录下:
```
target_include_directories(mylib mylib_shared
PUBLIC
${PROJECT_SOURCE_DIR}/include
/usr/local/include
)
```
这样,这两个目标的依赖项就可以使用这些路径了。
需要注意的是,如果要使用不同的可见性(即 `INTERFACE`、`PUBLIC` 或 `PRIVATE`)为不同的目标添加头文件路径,需要为每个目标分别调用 `target_include_directories()` 函数,并指定相应的可见性。例如:
```
target_include_directories(mylib
PUBLIC
${PROJECT_SOURCE_DIR}/include
)
target_include_directories(mylib_shared
INTERFACE
/usr/local/include
)
```
这样,`mylib` 目标的头文件路径对其依赖项可见,而 `mylib_shared` 目标的头文件路径对其依赖项不可见,但对其接口(即 `INTERFACE`)可见。