Я собираюсь связать свою статическую библиотеку с некоторыми дополнительными зависимостями (которые установлены в системе), а затем использовать эту библиотеку, но моя IDE говорит «Нет такого файла или каталога» в наследуемых включениях, как это:
CMakeLists.txt моей библиотеки:
find_package(lib1 REQUIRED)
target_link_libraries(${MY_MEGA_LIB_NAME} lib1::lib1)
target_include_directories(${MY_MEGA_LIB_NAME} PUBLIC ${LIB1_INCLUDE_DIR})
find_package(lib2 REQUIRED)
target_link_libraries(${MY_MEGA_LIB_NAME} lib2::lib2)
target_include_directories(${MY_MEGA_LIB_NAME} PUBLIC ${LIB2_INCLUDE_DIR})
CMakeLists.txt проекта, который использует мою библиотеку:
find_library(${CMAKE_BINARY_DIR}/lib/ MyMegaLib.a)
target_include_directories(${MY_MEGA_PROJECT} ${PROJECT_SOURCE_DIR}/include/MyMegaLib}
Ошибки такие:
fatal error: lib1.h: No such file or directory
#include <lib1.h>
Что я должен сделать для правильного наследования включений?
_ Полная иерархия моих библиотек и исполняемых файлов:
pre-lib1, pre-lib2
^^
lib1 (installed at the CMAKE_INSTALL_PREFIX path)
^
MyMegaLib (static library)
^
MyProject(static library and an executable MyProject_tests)
Так что на самом деле я получаю ошибки о pre-lib1 и pre-lib2о заголовках RE2 (prelib1.h: такого файла или каталога нет, preli2.h: такого файла или каталога нет), когда я пытаюсь создать 'MyProject_tests.