Недавно я видел использование PUBLI C / PRIVATE в зависимости CMake. Из того, что я узнал, если я хочу создать общую библиотеку, которая использует другую библиотеку, то:
- используйте PUBLI C - для включения этой библиотеки как в мои cpp, так и в файлы заголовков.
- использовать PRIVATE - для включения этой библиотеки только в мои cpp файлы.
- использовать ИНТЕРФЕЙС - для включения этой библиотеки только в мой файл заголовка.
Что такое Главная идея ? Как я могу улучшить свой файл CMake с помощью этой функции? можно ли его использовать как в библиотеке stati c, так и в библиотеке Dynami c one?
Вот мой файл 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)
Я использую библиотеку stati c с именем Infrastructures ( библиотеку, которую разработал мой коллега)
Я прочитал этот пост CMake target_link_libraries Зависимости интерфейса