Я учусь использовать CMake
для создания статических библиотек и делиться ими с другими модулями в проекте.Структура проекта следующая:
root
|
|__ util
| |
| |__ CMakeLists.txt
|
|__ execution
| |
| |__ CMakeLists.txt
|
|__ logic
| |
| |__ CMakeLists.txt
|
CMakeLists.txt
Итак, у меня есть модуль util
, который содержит некоторые служебные структуры и функции, которые должны использоваться другими модулями (execution
, * 1007).*).У меня есть 2 недоразумения:
I.Уместно ли просто добавить заголовки модулей util
к пути включения в root/CMakeLists.txt
и затем статически связать util
?В настоящее время util/CMakeLists.txt
выглядит следующим образом:
add_library(util src/util.c)
II.Если библиотека util
не содержит исходного файла, а содержит только общие структуры данных и определения, используемые другими модулями, как мы можем добавить его?Я пытался написать util/CMakeLists.txt
add_library(util)
, а затем в root/CMakeLists.txt
include_directories("${PROJECT_SOURCE_DIR}/util/include")
add_subdirectory(util)
Но это не сработало.
You have called ADD_LIBRARY for library util without any source files.
This typically indicates a problem with your CMakeLists.txt file