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")
相关推荐
宇宙超级无敌暴龙战士1 小时前
旮旯c语言三个任务
c++·c
BanyeBirth2 小时前
C++差分数组(二维)
开发语言·c++·算法
Fcy6482 小时前
C++ map和multimap的使用
开发语言·c++·stl
CC.GG2 小时前
【C++】STL容器----unordered_map和unordered_set的使用
java·数据库·c++
lengjingzju3 小时前
基于IMake的 GCC 编译与链接选项深度解析:构建高效、安全、可调试的现代软件
c++·安全·性能优化·软件构建·开源软件
xu_yule4 小时前
算法基础(数论)—算法基本定理
c++·算法·算数基本定理
CoderCodingNo4 小时前
【GESP】C++五级真题(结构体排序考点) luogu-B3968 [GESP202403 五级] 成绩排序
开发语言·c++·算法
星轨初途6 小时前
郑州轻工业大学2025天梯赛解题
c++·经验分享·笔记·算法·链表·剪枝
点云SLAM7 小时前
C++ 引用折叠(Reference Collapsing)和示例讲解说明
数据结构·c++·标准算法·完美转发·代码性能优化·c++ 引用折叠·typedef / using
chenyuhao20247 小时前
Linux网络编程:HTTP协议
linux·服务器·网络·c++·后端·http·https