为什么cmake在我的构建目录中创建一个'source'目录?

时间:2014-07-13 17:53:55

标签: linux compilation makefile cmake

我对cmake感到很沮丧,因为我正在努力学习并正确使用它。

这是我的设置:

我有一个名为~/project的目录。在这个目录中,我有:

  • build目录
  • source目录
  • includes目录。
  • CMakeLists.txt档案。

CMakeLists.txt文件的内容为:

cmake_minimum_required(VERSION 2.8)
project(myProject)
subdirs(source)

我在CMakeLists.txt中还有另一个~/project/source,其内容为:

cmake_minimum_required(VERSION 2.8)
include_directories("~/project/includes")
add_executable(exec entry.cpp)

现在,我进入构建目录,该目录为空,并执行cmake ..。这很好用。然而,我接着看到了一个'来源'目录创建如here所示。

为什么要创建?我不知道发生了什么事。根据我的理解,它不应该这样做,它应该给我我在这里看到的一切,除了源'目录。

感谢。

1 个答案:

答案 0 :(得分:1)

在构建目录中,CMake重新创建项目的整个目录结构。理性是,保持项目结构。想象一个更大的项目,包含几个级别的子文件夹和源,库和测试以有意义的方式分散。要运行测试,请遵循测试源所在的结构,只需在构建目录而不是源目录中。

作为您的项目,至少就CMake而言,它只是source子目录,只创建了这个文件夹。

如果你真的只有源项目,我不确定将CMake项目放在source内是否更好。