如何让CMake缓存及相关文件不生成在C++源码目录中
解决CMake构建文件污染源码目录的问题
你当前的问题出在构建目录的指定上——cmake -S. -B./src是把构建目录设为源码目录(src),CMake自然会在这个目录里生成CMakeCache.txt、CMakeFiles等文件。要保持源码目录整洁,核心是将构建目录与源码目录完全分离。
正确的命令用法
直接指定一个独立于源码的构建目录,比如项目根目录下的build文件夹:
cmake -S. -B./build
执行这条命令后,所有CMake生成的临时文件、编译产物都会被放在build目录下,你的源码目录(当前目录)不会被任何构建相关文件污染。
额外实用技巧
- 可以按平台划分构建目录,比如
./build/linux,方便区分不同环境的构建产物:cmake -S. -B./build/linux - 如果之前已经在源码目录生成了多余文件,执行以下命令清理:
rm -rf CMakeCache.txt CMakeFiles/ Makefile - 建议在项目的
.gitignore中添加以下内容,避免构建文件被提交到版本控制:build/ CMakeCache.txt CMakeFiles/ Makefile
内容的提问来源于stack exchange,提问作者Vitalii
相关产品推荐
相关产品推荐

