如何阻止RAD Studio Berlin的C++ Builder保存.cpp时更新.h/.dfm文件
解决RAD Studio Berlin C++ Builder保存.cpp时更新.h/.dfm时间戳的问题
这个问题在RAD Studio Berlin的C++ Builder版本里确实挺让人头疼的——明明没碰头文件和表单文件,保存cpp后它们的时间戳却自动更新,导致make工具触发大量不必要的重新编译。我之前帮团队里的人解决过一模一样的情况,给你几个可行的方案:
1. 关闭编辑器的自动同步时间戳设置
这是最直接的解决方法,Berlin版本默认开启了这个“贴心”但坑人的选项:
- 打开RAD Studio,点击顶部菜单栏的
Tools > Options - 在左侧导航栏里找到
Language > C++ > Form/Unit Synchronization - 取消勾选 "Synchronize modification time of related files when saving"(中文版本对应选项大概是“保存时同步相关文件的修改时间”)
- 点击
OK保存设置,之后再修改并保存.cpp文件,就只会更新该文件的时间戳,不会影响.h和.dfm了
2. 检查VCL设计器的关联设置
如果上面的设置改完还是有问题,再排查一下表单和单元的关联选项:
- 同样打开
Tools > Options,导航到VCL Designer > Form/Unit Linking - 确保没有勾选任何会触发未修改文件时间戳更新的选项(比如带有“自动同步表单和单元的修改状态”这类描述的选项)
3. 安装Berlin的最新更新补丁
如果前两个方法都无效,大概率是Berlin版本的一个已知bug。Embarcadero在后续的更新补丁(比如10.1 Update 3)里修复过这类文件时间戳异常同步的问题,建议你安装对应版本的最新补丁,能彻底解决这个底层问题。
临时 workaround(紧急情况用)
如果暂时没法改设置或打补丁,你可以用Windows的命令行工具把被误更新时间戳的.h/.dfm文件改回去:
打开命令提示符,进入文件所在目录,执行:
copy /b filename.h +,,
这个命令会在不修改文件内容的前提下,把文件的时间戳改回之前的状态,避免make工具误触发编译。
内容的提问来源于stack exchange,提问作者nachbar
相关产品推荐
相关产品推荐

