cmake - CMake 接口依赖
问题描述
我最近在 CMake 依赖项中看到了 PUBLIC / PRIVATE 的使用。对于我所学到的,如果我想构建一个使用另一个库的共享库,那么:
- 使用 PUBLIC- 将该库包含在我的 cpp 和头文件中。
- 使用 PRIVATE - 仅在我的 cpp 文件中包含该库。
- 使用 INTERFACE - 仅在我的头文件中包含该库。
主要思想是什么?如何使用该功能改进我的 CMake 文件?它可以在静态库和动态库中使用吗?
这是我的 CMake 文件:
cmake_minimum_required (VERSION 2.8)
set (CMAKE_CXX_FLAGS "-Weverything -std=c++11 -Wall -Wextra -g")
set (CMAKE_CXX_STANDARD 11)
set (CMAKE_BUILD_TYPE Debug)
project (internal)
set (internal VERSION 0.2)
file (GLOB internal_src
"utils.cpp"
"inspection.cpp"
"ct_proxy_if.cpp"
"stats.cpp")
file (GLOB main_SRC
${internal_src}
"mainW.cpp")
add_library(${PROJECT_NAME} STATIC ${internal_src})
target_link_libraries(internal infrastructures pthread jsoncpp ssl crypto)
我正在使用名为基础架构的静态库(我的同事开发的库)
解决方案
推荐阅读
- debugging - Ansible - 将调试写入文件:'dict object'没有属性'stdout_lines'
- node.js - 如何在 sequelize 中设置默认布尔值
- ios - MSAL 从 iOS Swift 示例返回了错误的令牌
- arrays - 如何从 bs4.element.Tag 中提取信息并将其保存在数组中?
- react-native - 流程没有从我自己的文件中找到模块?
- javascript - Javascript Regex 将网站上的所有链接从 http 转换为 https
- sql - SQL从有条件的分组行中删除记录
- visual-studio - 忽略“SQL71501:未解析的对象引用”错误
- python-2.7 - 从 Apache Airflow 1.10.2 中的 BigQueryOperator 继承时,参数设置为 None
- android - Firebase库实现的Appcompat错误