target_link_library
- 用于指明依赖关系
add_library(archive archive.cpp zip.cpp lzma.cpp)
add_executable(zipapp zipapp.cpp)
target_link_libraries(zipapp archive)
target_link_libraries(<target>
<PRIVATE|PUBLIC|INTERFACE> <item>...
[<PRIVATE|PUBLIC|INTERFACE> <item>...]...)
Libraries and targets following
PUBLICare linked to, and are made part of the link interface.
Libraries and targets followingPRIVATEare linked to, but are not made part of the link interface.
Libraries followingINTERFACEare appended to the link interface and are not used for linking<target>.
PUBLIC会把依赖关系传递下去, PRIVATE不会传递依赖关系, INTERFACE只用于传递依赖关系.
依赖关系通过<target>上的INTERFACE_LINK_LIBRARIES属性来传递.
INTERFACE_LINK_LIBRARIES
The value of this property is used by the generators when constructing the link rule for a dependent target.
A dependent target's direct link dependencies, specified by itsLINK_LIBRARIEStarget property, are linked first,
followed by indirect dependencies from the transitive closure of the direct dependencies'
INTERFACE_LINK_LIBRARIESproperties.
浙公网安备 33010602011771号