我正在研究使用 CMake 构建的 3dtk。你可以在这里找到它的 CMakeLists.txt:https ://sourceforge.net/p/slam6d/code/HEAD/tree/trunk/CMakeLists.txt
在几个地方它使用add_subdirectory
指令并且从不提供第二个参数(the binary_dir
)。
ccmake
在 linux 上调用 out-of-tree 或cmake-gui
在 windows上使用时,这似乎没有问题,因为在这两种情况下,项目配置成功。
但是当我cmake
在命令提示符下在 windows 上运行时,我会收到几个这样的错误:
CMake Error at Z:/CMakeLists.txt:471 (add_subdirectory):
add_subdirectory not given a binary directory but the given source
directory "Z:/src/slam6d" is not a subdirectory of "Z:/". When specifying
an out-of-tree source a binary directory must be explicitly specified.
我怀疑我只是缺少cmake
命令的一个选项,但是哪个选项?
就像cmake-gui
在 Windows 上,我指定了一个不同的路径来Where to build the binaries
进行where is the source code
树外构建,就像ccmake
在 Linux 上我ccmake
在我的源代码的子目录中运行一样ccmake ..
,我cmake
在 Windows 上从一个我的源的子目录。
那么什么是cmake-gui
和ccmake
做什么cmake
不,以及在哪里需要人工干预呢?
编辑:找到解决方案后发现问题是我的源目录直接是一个 Windows 驱动器号而不是一个子目录。