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")
相关推荐
程与留17 小时前
15_国际化和本地化:tr()、ts 文件、QM 文件、多语言切换
c++·qt
程与留18 小时前
14_Qt 样式表(QSS)入门(语法、选择器、美化实战)
c++·qt
欧特克_Glodon1 天前
OpenCV计算机视觉开发入门与实践<二十七>:图像分割概述
c++·人工智能·opencv·计算机视觉
蒸蒸yyyyzwd1 天前
cpp 选手秋招学习笔记 day21
c++·面试·八股
羑悻的小杀马特1 天前
百度ASR+BRPC+ETCD高并发高可用架构搭建,C++客户端API封装+语音识别子服务注册发现+全链路测试调优终极指南!
架构·sdk·etcd·cmake·百度智能云·brpc·语音识别子服务
「QT(C++)开发工程师」2 天前
C++ auto 用法详解
开发语言·c++
OPEN-F2 天前
C++STL教程:容器适配器与实用工具
开发语言·c++
OPEN-F2 天前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
有点。2 天前
C++二叉搜索树进阶
开发语言·c++
HugoStudio_SWAN2 天前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生