Snail

导航

 
  • 用于指明依赖关系
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 PUBLIC are linked to, and are made part of the link interface.
Libraries and targets following PRIVATE are linked to, but are not made part of the link interface.
Libraries following INTERFACE are 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 its LINK_LIBRARIES target property, are linked first,
followed by indirect dependencies from the transitive closure of the direct dependencies'
INTERFACE_LINK_LIBRARIES properties.

posted on 2022-03-27 13:29  Snail-0304  阅读(392)  评论(0)    收藏  举报