我正在学习如何使用CMake
创建静态库并与他们共享项目中的其他模块。该项目的结构如下:
root
|
|__ util
| |
| |__ CMakeLists.txt
|
|__ execution
| |
| |__ CMakeLists.txt
|
|__ logic
| |
| |__ CMakeLists.txt
|
CMakeLists.txt
因此,我有一个util
模块,其中包含一些应由其他模块(execution
,logic
)使用的实用程序结构和功能。我有2个误解:
I。仅将util
模块的标题添加到root/CMakeLists.txt
中的include路径,然后静态链接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