首页 文章

cmake - 从更高级别目录链接自定义库

提问于
浏览
1

我正在学习cmake,并且发现学习速度非常快 . 但是,文档不是最新的 . 这些教程很有帮助,但只是到目前为止 .

我有一个现有的项目,我想转换为使用cmake .

项目结构目前看起来像:

obsys / obsys / client / obsys / server / obsys / utils / include obsys / utils / src

我在每个级别创建了CMakeLists.txt文件 .

顶级看起来像这样:

make_minimum_required (VERSION 2.6)
project (osys)
add_subdirectory (server)
add_subdirectory (utils)

在utils中我有一个CMakeLists.txt,它包含:

include_directories ("${PROJECT_SOURCE_DIR}/utils/include")
add_subdirectory (src)

在utils src目录中,CMakeLists.txt文件包含:

add_library(utils myException.cpp)

服务器需要链接到utils . 它的CMakeLists.txt包含:

make_minimum_required (VERSION 2.6)
project (server)
include_directories ("../utils/include")
add_executable(serv serv.cpp)
add_subdirectory("../utils/src" utils)
target_link_libraries(obbsd utils)

这个布局的想法是我希望我可以通过顶级Makefile构建整个批次 . 或者,跳转到服务器或客户端并构建其中任何一个 . 它不是这样的 . 建议的方法是什么?

1 回答

  • 1

    好的,我现在有了它的工作 .

    问题是我的add_executable行没有列出所有源文件 . Link似乎抱怨与utils有关,这让我觉得它实际上并没有找到库 .

相关问题