Я пытаюсь настроить свой проект для создания нескольких динамических библиотек, которые охватывают его полную функциональность. Для каждой библиотеки есть подпапки. Библиотеки вложенных папок зависят друг от друга, поэтому они должны ссылаться на функции друг друга. Кажется, мне удалось заставить CMake работать без ошибок в проекте, но когда я перехожу к сборке, у меня возникают проблемы с тем, что мои заголовки находят друг друга. Кажется, во время сборки путь включения настроен неправильно. Как я могу это исправить? Есть ли дополнительные шаги, которые мне нужно предпринять, чтобы правильно настроить путь включения?
Структура выглядит примерно так
root
CMakeLists.txt
bin
lib
lib0
CMakeLists.txt
lib0.h
lib0.cpp
lib1
CMakeLists.txt
lib1.h
lib1.cpp
...
В CMakeLists.txt для корневого каталога у меня есть такие объявления:
set(ROOT /blah/blah/root)
include_directories(${ROOT}/lib0)
include_directories(${ROOT}/lib1)
add_subdirectory(lib0)
add_subdirectory(lib1)
В CMakeLists.txt для подпапок у меня:
set(lib0_SOURCES "")
list(APPEND lib0_SOURCES lib0.cpp)
add_library(lib0_lib ${lib0_SOURCES})
И мои заголовки для библиотек выглядят как (предположим, что это lib0.h):
#include "lib1/lib1.h"
...
CMake работает нормально, без ошибок, но когда я перехожу к компиляции, я получаю сообщение об ошибке типа:
In file included from /blah/blah/root/lib0/lib0.cpp:1:0:
/blah/blah/root/lib0/lib0.h:1:30: fatal error: lib1/lib1.h: No such file or directory