CMake编译中target_link_libraries中属性PRIVATE、PUBLIC、INTERFACE含义

时间:2024-11-13 19:22:35

当创建动态库时,

  • 如果源文件(例如CPP)中包含第三方头文件,但是头文件(例如hpp)中不包含该第三方文件头,采用PRIVATE。
  • 如果源文件和头文件中都包含该第三方文件头,采用PUBLIC。
  • 如果头文件中包含该第三方文件头,但是源文件(例如CPP)中不包含,采用 INTERFACE

原文:CMake target_link_libraries Interface Dependencies

/questions/26037954/cmake-target-link-libraries-interface-dependencies

其他属性可以参考/cmake/help/v3.0/manual/cmake-buildsystem.#transitive-usage-requirements