cmake变量:PRIVATE PUBLIC INTERFACE

该三个变量多用于target_include_directories,target_link_libraries中,用于指明链接内容的使用规则,以头文件为例。

具体规则如下:

bash 复制代码
add_library(MathFunction mysqrt.cpp)

target_include_directories(MathFunction INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
 
# 规则
# PUBLICE: 编译的本目标库需要,依赖该目标库的其他目标也需要
# INTERFACE: 编译本目标库不需要头文件,依赖该目标库的其他目标需要
# PRIVATE: 编译的本目标库需要,依赖该目标库的其他目标不需要


# 另一个CMakeLists.txt

add_executable(demo demo.cpp)
target_link_libraries(demo PUBLIC MathFunction)

# 无需再包含MathFunction路径下的头文件
# target_include_directories(demo PUBLIC "${CMAKE_SOURCE_DIR}/MathFunction")
相关推荐
WBluuue6 小时前
Codeforces 1078 Div2(ABCDEF1)
c++·算法
学无止境_永不停歇6 小时前
十、C++多态
开发语言·c++
老歌老听老掉牙6 小时前
QT开发踩坑记:按钮点击一次却触发两次?深入解析信号槽自动连接机制
c++·qt
橘色的喵7 小时前
现代 C++17 相比 C 的不可替代优势
c语言·c++·现代c++·c++17
浅念-7 小时前
C/C++内存管理
c语言·开发语言·c++·经验分享·笔记·学习
回敲代码的猴子7 小时前
2月8日上机
开发语言·c++·算法
Benny_Tang8 小时前
AtCoder Beginner Contest 445(ABC445) A-F 题解
c++·算法
tod1139 小时前
Redis 数据类型与 C++ 客户端实践指南(redis-plus-plus)
前端·c++·redis·bootstrap·html
掘根10 小时前
【C++STL】二叉搜索树(BST)
数据结构·c++·算法
cccyi710 小时前
Redis基础
c++·redis