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")
相关推荐
Trouvaille ~17 分钟前
【C++篇】C++11新特性详解(一):基础特性与类的增强
c++·stl·c++11·类和对象·语法·默认成员函数·初始化列表
CSDN_RTKLIB21 分钟前
【类定义系列一】C++ 头文件 / 源文件分离
开发语言·c++
CoderCodingNo24 分钟前
【GESP】C++五级真题(埃氏筛思想考点) luogu-B3929 [GESP202312 五级] 小杨的幸运数
数据结构·c++·算法
charlee4426 分钟前
C++中JSON序列化和反序列化的实现
c++·json·序列化·结构体·nlohmann/json
挖矿大亨44 分钟前
c++中值传递时是如何触发拷贝构造函数的
开发语言·c++
顶点多余1 小时前
继承和多态
c++·servlet
oioihoii2 小时前
C++多线程中join与detach机制深度解析
java·jvm·c++
初圣魔门首席弟子2 小时前
智能指针使用bug
c++·算法
闻缺陷则喜何志丹2 小时前
【组合数学 动态规划】P6870 [COCI2019-2020#5] Zapina|普及+
c++·数学·算法·动态规划·组合数学
CoderCodingNo2 小时前
【GESP】C++五级真题(贪心考点) luogu-B3872 [GESP202309 五级] 巧夺大奖
开发语言·c++