Я пытаюсь создать библиотеку со следующей структурой каталогов:
lib1
|-include
| |-lib1
| |-public.h
|-src
| |-private.h
| |-private.cpp
| |-public.cpp
|-lib
| |-liblib1.a
|-CMakeLists.txt
если заголовок publi c включает частный заголовок для использования его функций.
My CMakeLists.txt
выглядит следующим образом:
project(math)
set(SRC_FILES src/private.cpp src/public.cpp)
add_library(${PROJECT_NAME} STATIC ${SRC_FILES})
target_include_directories(
${PROJECT_NAME}
PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}/include"
PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/src"
)
set_target_properties(
${PROJECT_NAME}
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/lib"
)
Но когда я пытаюсь собрать библиотеку, я получаю сообщение об ошибке public.h
о том, что файла нет private.h
При поиске в Google я либо найдите довольно старые сообщения, которые не используют target_include_directories
или поддерживают нечистую структуру, помещая все файлы в один каталог