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

当创建动态库时,

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

原文:CMake target_link_libraries Interface Dependencies

http://stackoverflow.com/questions/26037954/cmake-target-link-libraries-interface-dependencies

其他属性可以参考http://www.cmake.org/cmake/help/v3.0/manual/cmake-buildsystem.7.html#transitive-usage-requirements

发表评论

邮箱地址不会被公开。 必填项已用*标注