误将CMake构建的二进制文件生成在System 32文件夹,如何彻底清理?
彻底清理系统中CMake生成文件的详细步骤
为什么cmake --build --target clean没效果?
clean目标仅针对指定的CMake构建目录生效,而你误将生成文件放到了System32(非CMake标准构建目录),所以这个命令无法定位到目标文件。
步骤1:优先清理CMake特有标识文件(安全无风险)
这些文件是CMake构建时的专属产物,系统自身不会生成,可放心删除:
- 打开Windows资源管理器,进入
C:\Windows\System32目录 - 搜索并删除以下内容:
- 文件:
CMakeCache.txt - 文件夹:
CMakeFiles(整个文件夹直接删除) - 构建脚本:
Makefile、build.ninja、*.vcxproj.user
- 文件:
步骤2:谨慎清理生成的二进制文件
二进制文件可能和系统文件重名,操作前务必确认:
- 如果你记得项目名称,直接搜索项目相关的
.exe/.dll/.lib文件(比如你的项目叫MyApp,就搜MyApp.exe),确认是你构建生成的再删除 - 不确定的话,查看文件的创建/修改时间,和你运行CMake构建的时间匹配的可疑文件,建议先备份到其他目录,确认系统正常后再删除
- ❌ 绝对不要删除系统自带文件(如
kernel32.dll、user32.dll等核心文件)
步骤3:命令行批量清理(适用于熟悉命令行的用户)
打开管理员权限的命令提示符(CMD),执行以下命令:
- 进入System32目录:
cd C:\Windows\System32 - 删除CMakeFiles文件夹:
rmdir /s /q CMakeFiles - 删除CMakeCache.txt:
del /f CMakeCache.txt - 删除生成的构建脚本:
del /f Makefile build.ninja *.vcxproj*.user
步骤4:后续预防措施
- 永远不要在系统目录(System32、Windows等)内运行CMake或构建项目,创建独立的项目目录(如
C:\Projects\MyCMakeProject),在该目录下使用cmake -S . -B build命令,将所有生成文件放到build子目录中,后续清理直接删除build文件夹即可 - 可以通过CMake参数指定输出目录,避免文件乱放:
cmake -S . -B build -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=C:\Projects\MyCMakeProject\bin
内容的提问来源于stack exchange,提问作者trickshot1994
相关产品推荐
相关产品推荐

