私は内部の個人用プロジェクト用のC++共有ライブラリを作成していますが、リンク/コンパイルプロセスにはcmakeを使用しています。今、私のCMakeLists.txtファイルは、私は正常に私のファイルをコンパイルしたが、私は「カプセル化」について少し心配です知っているこの特定のヘッダーを持つC++共有ライブラリを展開する
cmake_minimum_required(VERSION 3.7)
project(borges)
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_STANDARD 11)
include_directories(include)
file(GLOB SOURCES "src/*.cpp")
add_library(borges SHARED ${SOURCES})
install(TARGETS borges DESTINATION /usr/local/lib)
のように見えます。私は、特定の.hファイルだけを公開する方法があるかどうか疑問に思っていました。私のライブラリのコンテキスト外で使うのはあまり意味がないクラスがいくつかあるためです。ライブラリの「プライベート」クラスのようなもので、人々が外部で使用するクラスだけを公開する