gpt4 book ai didi

c++ - 选择在 cmake 中构建库或可执行文件

转载 作者:行者123 更新时间:2023-11-30 05:02:52 25 4
gpt4 key购买 nike

我正在用 C++ 构建一个库,并使用 CMake 为其生成项目。但是,我不知道如何在库的顶层目录写一个好的CMakeLists.txt。

事实上,如果我想简单地将库包含在另一个项目中(添加库、链接源等),实际上它是有效的,但我希望如果我在没有其他项目的情况下生成库本身,它会生成一个图书馆提供的演示项目。所以我想要一个 CMakeLists

  1. 在包含在项目中的情况下链接库
  2. 在使用 CmakeLists 作为顶级 cmakelists 的情况下构建一个演示。

我的第一个想法是搜索“project(xxx)”是否已经被调用,但我不知道这是否是个好主意。因为我真的不知道什么是好的做法,所以我很难在文档中找到信息。

最佳答案

检测当前项目是否也是顶级项目的一种快速方法是检查 PROJECT_SOURCE_DIRCMAKE_SOURCE_DIR :

if(PROJECT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
message("You are building stand-alone!")
endif()

但请注意,这可能不是您问题的最佳解决方案。允许像这样将库拉入第三方构建需要您的库和封闭构建的明确支持。

或者,您可以分别构建两个项目,但提供 proper packaging使您的图书馆易于集成。这种方法通常更灵活,因为它让您的客户可以自由选择何时以及如何构建您的库,然后再将其引入他们的构建。

关于c++ - 选择在 cmake 中构建库或可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49654192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com