【问题标题】:cmake - Link custom library from higher level directorycmake - 从更高级别的目录链接自定义库
【发布时间】:2011-09-29 01:53:41
【问题描述】:

我正在学习 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 构建整个地段。或者,跳转到服务器或客户端并构建它们中的任何一个。它不是那样的。推荐的方法是什么?

【问题讨论】:

    标签: cmake


    【解决方案1】:

    好的,我现在可以正常工作了。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 2011-04-14
      • 1970-01-01
      • 2015-07-13
      • 1970-01-01
      相关资源
      最近更新 更多