gpt4 book ai didi

cmake - CMake 中的 CMAKE_SOURCE_DIR 和 PROJECT_SOURCE_DIR 是否相同?

转载 作者:行者123 更新时间:2023-12-03 06:48:50 24 4
gpt4 key购买 nike

This page包含 CMake 已经为我们定义的变量的良好摘要。我觉得有些变量是相同的。以CMAKE_SOURCE_DIRPROJECT_SOURCE_DIR为例。它们是相同的,指的是定义顶层 CMakeLists.txt 的文件夹。所以我的问题是:它们之间有细微的区别吗?谢谢。

最佳答案

这些变量之间存在差异。 CMAKE_SOURCE_DIR 确实指的是定义顶级 CMakeLists.txt 的文件夹。然而, PROJECT_SOURCE_DIR 指包含最新 project() 的 CMakeLists.txt 文件夹命令。

例如,假设您有一个名为 Outer 的顶级项目这包含一个子目录及其自己的项目,名为 InnerOuter的 CMakeLists.txt 有:

project(Outer)
add_subdirectory(Inner)

Inner的:

project(Inner)

然后在这两个 CMakeLists 文件中 CMAKE_SOURCE_DIR将引用Outer的源目录。但是同时PROJECT_SOURCE_DIR对于 Outer也是同一个目录,Inner 的情况并非如此。 。 InnerPROJECT_SOURCE_DIR是包含其 CMakeLists.txt 的子目录。

此差异适用于所有 PROJECT_<var>CMAKE_<var>变量。

关于cmake - CMake 中的 CMAKE_SOURCE_DIR 和 PROJECT_SOURCE_DIR 是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32028667/

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