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

时间:2011-09-29 01:53:41

标签: cmake

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

我所拥有的是一个现有项目,我想使用cmake转换为它。

项目结构目前如下:

OBSYS / obsys / client / {client files} obsys / server / {server files} OBSYS / utils的/包括 OBSYS / utils的/ SRC

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

顶级目前看起来像这样:

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

Inside 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 个答案:

答案 0 :(得分:1)

好的,我现在有了它。

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

相关问题