我对 cmake 感到有点沮丧,因为我正在尝试学习它并正确使用它。
这是我的设置:
我有一个名为 ~/project
的目录。在这个目录中,我有:
构建
目录源
目录包含
目录。CMakeLists.txt
文件。
此CMakeLists.txt
文件的内容是:
cmake_minimum_required(VERSION 2.8)
project(myProject)
subdirs(source)
我在~/project/source
中还有另一个CMakeLists.txt
,其内容是:
cmake_minimum_required(VERSION 2.8)
include_directories("~/project/includes")
add_executable(exec entry.cpp)
现在,我进入空的构建目录,然后执行cmake ..
。这很好用。不过,我随后看到创建了一个“源”目录,如图所示 here 。
为什么要创建这个?我不知道发生了什么事。据我了解,它不应该这样做,它应该给我在这里看到的所有内容,除了“源”目录之外。
谢谢。
最佳答案
在构建目录中,CMake 重新创建项目的整个目录结构。合理的做法是,保持项目结构。想象一个更大的项目,其中有多个级别的子文件夹和源代码、库和测试以有意义的方式分散。要运行测试,您需要遵循测试源所在的结构,即位于构建目录而不是源目录中。
作为您的项目,至少就 CMake 所知,只有 source
子目录,仅创建此文件夹。
如果您确实只有源项目,我不确定将 CMake 项目放在 source
中是否会更好。
关于linux - 为什么 cmake 在我的构建目录中创建 'source' 目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24725580/