首页 > 解决方案 > CMake 接口依赖

问题描述

我最近在 CMake 依赖项中看到了 PUBLIC / PRIVATE 的使用。对于我所学到的,如果我想构建一个使用另一个库的共享库,那么:

  1. 使用 PUBLIC- 将该库包含在我的 cpp 和头文件中。
  2. 使用 PRIVATE - 仅在我的 cpp 文件中包含该库。
  3. 使用 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)

我正在使用名为基础架构的静态库(我的同事开发的库)

我读了这篇文章CMake target_link_libraries Interface Dependencies

标签: cmake

解决方案


推荐阅读