将CMake项目移动到新目录后该如何重新构建?
CMake项目迁移目录后重新构建步骤
CMake生成的构建配置默认会硬编码原项目目录的绝对路径,因此移动/重命名目录后原有构建缓存全部失效,无需尝试执行make clean等依赖旧配置的命令,按以下步骤操作即可:
方案1:移动/重命名目录前操作(更简便)
- 若项目使用分离构建模式(源码与构建目录分离,通常有独立的
build/文件夹),直接删除整个构建目录:rm -rf build/ - 若项目使用原地构建模式(直接在源码目录执行CMake生成配置),删除所有CMake生成的缓存和构建文件:
rm -rf CMakeCache.txt CMakeFiles/ cmake_install.cmake Makefile *.cmake config.log config.status - 正常重命名/移动项目目录到目标位置
- 进入新目录后重新执行CMake配置与构建即可,以分离构建为例:
mkdir build && cd build cmake .. make
方案2:已经完成目录移动/重命名后操作
- 直接在新目录下删除所有CMake生成的缓存和构建文件,执行命令与方案1的清理命令完全一致
- 重新执行CMake配置、构建流程即可
注意事项
- 无需尝试手动修改旧构建文件中的路径,全量删除后重新生成是成本最低、稳定性最高的方案
- 推荐后续长期使用分离构建模式编译CMake项目,彻底避免构建产物污染源码目录,后续迁移目录仅需删除构建目录即可
内容的提问来源于stack exchange,提问作者curiousity
相关产品推荐
相关产品推荐

