首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正在寻找'cmake clean‘命令来清除CMake输出

正在寻找'cmake clean‘命令来清除CMake输出
EN

Stack Overflow用户
提问于 2012-03-13 16:16:42
回答 23查看 509.7K关注 0票数 512

就像make clean会删除makefile生成的所有文件一样,我也想用CMake做同样的事情。我经常发现自己手动遍历目录,删除cmake_install.cmakeCMakeCache.txt等文件,以及CMakeFiles文件夹。

是否有像cmake clean这样的命令可以自动删除所有这些文件?理想情况下,这应该遵循在当前目录的CMakeLists.txt文件中定义的递归结构。

EN

回答 23

Stack Overflow用户

回答已采纳

发布于 2012-03-13 16:23:39

CMake 3.X

CMake 3.X提供了一个“干净”的目标。

代码语言:javascript
运行
复制
cmake --build C:/foo/build/ --target clean

从3.0.2的CMake文档中:

代码语言:javascript
运行
复制
--clean-first  = Build target 'clean' first, then build.
                 (To clean only, use --target 'clean'.)

CMake 2.X

CMake版本2.X中没有cmake clean

我通常在像" build“这样的单个文件夹中构建项目。所以如果我想要make clean,我可以直接rm -rf build

与根目录"CMakeLists.txt“位于同一目录中的"build”文件夹通常是一个很好的选择。要构建项目,只需将CMakeLists.txt的位置作为参数提供给cmake即可。例如:cd <location-of-cmakelists>/build && cmake ..。(来自@ComicSansMS)

票数 581
EN

Stack Overflow用户

发布于 2014-09-16 22:21:00

CMake official FAQ声明:

一些用GNU autotools创建的构建树有一个"make distclean“目标,它可以清理构建,还可以删除Makefiles和生成的构建系统的其他部分。因为CMakeLists.txt文件可以运行脚本和任意命令,所以CMake不会生成"make distclean“目标;CMake无法准确跟踪在运行CMake时生成了哪些文件。提供distclean目标会给用户一种错误的印象,认为它会像预期的那样工作。(CMake确实会生成一个"make clean“目标来删除由编译器和链接器生成的文件。)

只有当用户执行源代码内构建时,才需要"make distclean“目标。CMake支持源代码内构建,但我们强烈建议用户采用源代码外构建的概念。使用独立于源树的构建树将阻止CMake在源树中生成任何文件。因为CMake不会更改源树,所以不需要distclean目标。用户可以通过删除构建树或创建单独的构建树来启动全新的构建。

票数 91
EN

Stack Overflow用户

发布于 2014-08-15 05:25:41

在Git无处不在的日子里,你可能会忘记CMake而使用git clean -d -f -x,它将删除所有不受源代码控制的文件。

票数 79
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9680420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档