У меня есть подкаталог, который создает общую библиотеку, которая создается в папку из моего корневого проекта. Я связываю его в своем файле cmake без каких-либо проблем. Однако компилятор не может найти файлы заголовков независимо от того, как я его перенастроил.CMAKE: Библиотека отсутствует файл заголовка
структура папок аналогична:
Корень
- сборки
- Lib
- ЦСИ
- библиотека
- тест
- library_test
По существу я хочу связать библиотеку, которая компилирует в Lib папку, чтобы связать его испытания. Однако независимо от того, как я настраиваю CMakelists, он не может найти заголовочный файл для библиотеки во время компиляции. Однако во время процесса cmake ошибок нет. Действительное сообщение об ошибке выглядит следующим образом:
fatal error: 'file.h' file not found
Мой пост недавнюю попытку:
find_library(LESSIONS_LIBS chp_two PATHS {CMAKE_SOURCE_DIR}/build/lib/)
add_library(test_chptwo SHARED ${TEST})
target_link_libraries(test_chptwo gtest LESSIONS_LIBS)
Любые идеи?
Редактировать Один
Вот мои обновленные CMakelists:
Библиотека CMakeLists:
cmake_minimum_required(VERSION 3.7.0)
#Project Name
project (chp_two)
#Build Problem Sets as Library
#Header Files
include_directories(include ${CMAKE_CURRENT_SOURCE_DIR}/inc/)
#Source files
set(LIB random_queue.cpp ${include})
add_library(chp_two SHARED ${LIB})
Тестовые CMakeLists:
cmake_minimum_required(VERSION 3.7.0)
#Project Name
project(TESTING)
#Setting Test sources
set(TEST test_random_queue.cpp)
#Search for libraries
find_library(LESSIONS_LIBS chp_two PATHS {CMAKE_SOURCE_DIR}/build/lib/)
enable_testing()
#turn test into a library
add_library(test_chptwo SHARED ${TEST})
target_link_libraries(test_chptwo gtest LESSIONS_LIBS)
Какой ** проект ** вызывает ошибку: один для * библиотеки * или один для * теста *? Добавьте эту информацию в вопрос. – Tsyvarev
Возможный дубликат [CMake include path] (http://stackoverflow.com/questions/15392561/cmake-include-path) – usr1234567