target_link_libraries scope的差别
时间: 2023-11-24 12:52:13 浏览: 89
BUPT_RobotTeam_Libraries-机器人资源
target_link_libraries和target_link_directories都是CMake中用于链接库的命令,但它们的作用不同。
target_link_libraries用于将一个或多个库链接到目标上,其格式如下:
```
target_link_libraries(<target> [PRIVATE|PUBLIC|INTERFACE] <item>...)
```
其中,<target>是目标名称,<item>是要链接的库的名称。PRIVATE、PUBLIC和INTERFACE是可选的关键字,用于指定链接库的范围。PRIVATE表示只在目标自身中使用,PUBLIC表示目标和依赖项都可以使用,INTERFACE表示只在依赖项中使用。
target_link_directories用于将链接目录添加到目标中,其格式如下:
```
target_link_directories(<target> [BEFORE] <INTERFACE|PUBLIC|PRIVATE> <dir>...)
```
其中,<target>是目标名称,<dir>是要添加的链接目录。BEFORE是可选的关键字,用于指定添加链接目录的位置。PRIVATE、PUBLIC和INTERFACE是必需的关键字,用于指定链接目录的范围。
因此,target_link_libraries和target_link_directories的作用不同,前者用于链接库,后者用于添加链接目录。在使用时需要根据具体情况选择使用哪个命令。
阅读全文