CMake命令之target_link_directories简

2023-09-11  本文已影响0人  Domibaba

命令简介

为特定的构建目标添加链接目录,具体的命令格式为:

target_link_directories(<target> [BEFORE]
<INTERFACE|PUBLIC|PRIVATE> [items1...]
[<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])

<target>必须是已经通过add_executable()或add_library()等命令创建出来的目标,对于每一个添加的目录,也有可选的范围参数PUBLIC、PRIVATE和INTERFACE,区别是:指定PUBLIC或PRIVATE时,目录会添加到目标的LINK_DIRECTORIES属性中;指定PUBLIC或INTERFACE时,目录会添加到目标的INTERFACE_LINK_DIRECTORIES属性中。和link_directories的主要差别是:

默认情况下,会按照追加的方式添加目录,如果指定了参数BEFORE,那么添加的时候会将目录插入到最前面。

示例

目录结构如下:

target_link_directories/
├── CMakeLists.txt
├── lib
│   └── libtest.a
└── main.cpp

CMakeLists.txt文件内容:

cmake_minimum_required(VERSION 3.22)
project(target_link_directories_test)

add_executable(main main.cpp)
target_link_libraries(main test)

target_link_directories(main PRIVATE lib)

执行cmake .make VERBOSE=1以及./main,结果:

$ ./main 
In test: say hello!
上一篇 下一篇

猜你喜欢

热点阅读