应该怎么理解CMakeLists.txt中一些指令的INTERFACE、PUBLIC和PRIVATE参数

我们在写CMakeLists.txt时经常会遇到一些指令带有INTERFACE|PUBLIC|PRIVATE参数,比如target_include_directories()指令,比如target_link_libraries()指令,等等。

那这些指令中的INTERFACE|PUBLIC|PRIVATE参数到底代表了什么呢,其实这些参数在这些不同指令中的含义都类似,也很好理解:

  • INTERFACE:表示当前目标不需要但是依赖当前目标的目标需要的资源(这个资源包括但不限于头文件)。
  • PUBLIC表示当前目标和依赖当前目标的目标都需要的资源。
  • PRIVATE表示当前目标需要但是依赖当前目标的目标不需要的资源,这些资源也不应该暴露给依赖当前目标的目标。

在使用cmake构建时会根据使用了哪个参数来对这些资源进行控制。

相关推荐
H Journey1 天前
VSCode下CMake使用
vscode·cmake
9分钟带帽1 天前
vscode中配置Qt6和CMake的开发环境
c++·vscode·cmake
阿拉斯攀登2 天前
从入门到实战:CMake 与 Android JNI/NDK 开发全解析
android·linux·c++·yolo·cmake
9分钟带帽2 天前
vscode解决终端输出乱码的问题
vscode·cmake
rqtz4 天前
【机器人】ROS2 功能包创建与 CMake 编译链路探秘
机器人·cmake·ros2
AIminminHu5 天前
OpenGL渲染与几何内核那点事-项目实践理论补充(三-1-(2):当你的CAD代码变得“又大又乱”:从手动编译到CMake,从随性编码到单元测试))
c++·单元测试·cmake·cad·cad开发
梓䈑7 天前
【CMake】动静态库的安装 和 使用
c++·cmake
十五年专注C++开发7 天前
银河麒麟V10系统安装vcpkg的方法
c++·cmake·vcpkg
仍然探索未知中9 天前
CMake快速使用
cmake
阿昭L11 天前
Windows通用的C/C++工程CMakeLists
c语言·c++·windows·makefile·cmake