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")
相关推荐
2401_841495642 小时前
【操作系统】进程同步与互斥实验报告
c++·算法·操作系统·进程·并发·同步·互斥
fqbqrr2 小时前
2607C++,soui与安卓
c++·soui
fqbqrr6 小时前
2607C++,使用微软detours勾挂工具
c++
蓝悦无人机9 小时前
C++基础 — 函数总结
开发语言·c++
我不是懒洋洋10 小时前
从零实现一个分布式监控:Prometheus的核心设计
c++
An_s10 小时前
c++对接pdfium(一)win系统篇
开发语言·c++
众少成多积小致巨11 小时前
C++ 规范参考(上)
c++
Javenwww12 小时前
CMake入门——基本语法规则
cmake
一拳一个呆瓜14 小时前
【STL】iostream 编程:使用提取运算符
c++·stl
我不是懒洋洋15 小时前
从零实现一个分布式日志平台:ELK的核心设计
c++