假设我有一个名为foo
的项目,其源位于/foo/src
下。还要假设在过去的某个时候,有人运行了cmake /foo/src
,因此那里有构建文件。
现在,我想在foo
中执行/foo/build
的构建。但是,如果我cd /foo/build; cmake /foo/src
-将/foo/src
视为构建目录,并在此处而不是在当前目录中配置并生成该构建文件。
问题:
/foo/src
中配置和生成构建文件,需要删除/foo/build
中最小的文件集是什么?/foo/build
而不从/foo/src
中删除任何内容吗?答案 0 :(得分:1)
要删除的文件集足够多(也许不是最少):
CMakeCache.txt
Makefile
cmake_install.cmake
CMakeFiles/
如果您还启用了测试,则
CTestTestfile.cmake
Testing/
tests/CTestTestfile.cmake
tests/Makefile
tests/cmake_install.cmake
tests/CMakeFiles/
如果执行
cmake -B/foo/build -H/foo/src
CMake将忽略先前的构建,并在/foo/build
下进行构建。发出此命令时,您不需要将它作为当前工作目录。
该答案的第二部分实际上可以在this answer
中找到