gpt4 book ai didi

c++ - CMake 基本项目设置

转载 作者:搜寻专家 更新时间:2023-10-31 01:58:08 26 4
gpt4 key购买 nike

我是 CMake 的新手,正在重新学习 C++,所以我希望这些是适当的问题。我在目录/projects/A 中有一个项目,在/projects/include/open-source-project-1 中有一些 A 项目所依赖的 .h 文件。

Sample Hierarchy:/projects  /CMakeLists.txt  /A    /CMakeLists.txt    /a.cpp  /B    /CMakeLists.txt  /include    /open-source-project-1      /includeMe.h    /open-source-project-2
  1. 我需要使用 cmake include_directories() 命令吗?如果是这样,我需要把它放在什么 CMakeLists.txt 文件中? (我尝试了很多变体)
  2. 我需要不同的 cmake 命令吗?
  3. 如果我将它放在最顶层的 CMakeLists.txt 中,它是否应该处理 A 项目或 B 项目的 .cpp 文件中出现的所有#include?
  4. 这是 C++ 项目的典型设置吗?这看起来合乎逻辑吗?

最佳答案

您的顶级 CMakeLists.txt 文件是不需要的,除非所有项目都以某种方式直接相互关联或具有无法解决的依赖关系。 不相关项目不应相互包含,它们不需要父列表文件。

  1. 如果 A 和 B 是独立的项目,./A/CMakeLists.txt./B/CMakeLists.txt至少应该包含这一行:

    include_directories(../include)

    否则,如果 A 和 B 是一个更大的单个项目的部分,那么将这些行放在顶级 CMakeLists.txt 文件中是合适的:

    include_directories(include)
    add_subdirectory(A)
    add_subdirectory(B)
  2. 仅适用于单独的项目。调用一次 cmake 将创建一个 构建树。您只需要一个构建树的项目。

  3. 没有。只有顶级列表文件包含 add_subdirectory 指令才会影响其他列表文件。
  4. 不,这是不典型的。

关于c++ - CMake 基本项目设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4536246/

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