传递使用要求 (Transitive Usage Requirements)
Target的使用要求可以传递到依赖项. target_link_libraries()命令有 PRIVATE、INTERFACE 和 PUBLIC关键字来控制传递.
当创建动态库时,
- 若源文件(例如cpp)中包含第三方头文件,而头文件(例如hpp)中不包含该第三方文件头,采用
PRIVATE。 - 若源文件和头文件中都包含该第三方文件头,采用
PUBLIC。 - 若头文件中包含该第三方文件头,而源文件(例如cpp)中不包含,采用
INTERFACE。