1.关于 PUBLIC PRIVATE INTERFACE

PUBLIC 当前target和其超集

PRIVATE 当前target

INTERFACE 当前target的超集

(官方文档里用的是consumer 和producer 纯纯谜语人

Exercise 1 - Adding Usage Requirements for a Library

将库层与应用层解耦

在库CmakeLIsts添加

target_include_directories(MathFunctions INTERFACE ${CMAKE_SOURCE_DIR})

这样只要应用层添加了target_link_libraries()就可以使用了

Exercise 2 - Setting the C++ Standard with Interface Libraries

同样解耦

add_library(tutorial_compiler_flags INTERFACE)
target_compile_features(tutorial_compiler_flags INTERFACE cxx_std_11)
target_link_libraries(Tutorial PUBLIC MathFunctions tutorial_compiler_flags)

实现库层定义用用曾的属性

Documents