在一个 cpp 文件中,我使用__DATE__
宏来获取编译日期。
它给了我最后一次编译该文件的日期。但由于文件不经常更改,大多数情况下日期是旧的,有时是几个月。
我真正想要的是项目最后一次构建的日期。
是否有设置强制 VS2010 在项目的每次编译时重建单个 cpp 文件?不管文件的变化?
到目前为止,我发现的唯一方法是在构建之前通过脚本修改文件或删除创建的 obj 文件,如果可能的话,我更喜欢 VS 中的解决方案。
在一个 cpp 文件中,我使用__DATE__
宏来获取编译日期。
它给了我最后一次编译该文件的日期。但由于文件不经常更改,大多数情况下日期是旧的,有时是几个月。
我真正想要的是项目最后一次构建的日期。
是否有设置强制 VS2010 在项目的每次编译时重建单个 cpp 文件?不管文件的变化?
到目前为止,我发现的唯一方法是在构建之前通过脚本修改文件或删除创建的 obj 文件,如果可能的话,我更喜欢 VS 中的解决方案。
您可能会添加一个Pre-Build Step
(touch
请参阅此线程)文件?
要添加一个Pre-Build Step
,打开你的Project Properties
,Configuration Properties > Build Events > Pre-Build Event
然后添加你想要在其中执行的命令行Command Line
。
按照 Amitd 的建议,显然您也可以touch
使用 PowerShell 来创建文件,请参阅此文件以获取解释。
正如 Adrian McCarthy 在下面的评论中所建议的那样,.obj
在使用源代码控制并且您希望保留.cpp
read-only
. 使用 Visual Studio 公开的“宏”,可以轻松删除它们:
del $(TargetDir)sourcefile.obj
引自 Cheers and hth。- Alf 作为实现这一目标的另一种方式
nmake (bundled with Visual Studio and the SDK) option /t does a touch, it was once the conventional way to do this for Windows programmers.
您可以添加以下预构建步骤,您只需触摸文件的日期戳。这+,,
是copy
命令的一个特殊标志,告诉它更新文件的时间戳:
copy file.cpp +,,