cmake 笔记 关于 private,interface,public


target_include_directories(hello_library
    PUBLIC
        ${PROJECT_SOURCE_DIR}/include
)

target_link_libraries( hello_binary
    PRIVATE
        hello_library
)

PRIVATE - 被添加到目标(库)的包含路径中。
INTERFACE - 没有被添加到目标(库)的包含路径中,而是添加到了链接这个库的其他目标(库或者可执行程序)包含路径中
PUBLIC - 既被添加到目标(库)的包含路径中,同时添加到了链接这个库的其他目标(库或者可执行程序)的包含路径中

简单来说,不考虑文件大小,重复引用,全部用PUBLIC就完事了。

add_library命令如果没有可添加的执行文件,只能用INTERFACE来修饰

add_library(${PROJECT_NAME} INTERFACE)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM