有没有一种方法可以强制Visual Studio在每次构建时重新构建特定文件?
我有一个版本头文件,其中包含__DATE__
和__TIME__
,我希望它在每个版本中自动更新。
我可以使用预构建事件和批处理文件来touch
文件,只是想知道是否已经有这个功能了?
有没有一种方法可以强制Visual Studio在每次构建时重新构建特定文件?
我有一个版本头文件,其中包含__DATE__
和__TIME__
,我希望它在每个版本中自动更新。
我可以使用预构建事件和批处理文件来touch
文件,只是想知道是否已经有这个功能了?
.obj
文件。这将导致编译器重新构建您的.cpp
或.h
文件。右键单击项目 > 属性 > 构建事件 > 预构建事件 > 命令行并添加以下行:del $(TargetDir)source.obj
来自超级用户,尝试添加一个预构建命令:
copy /b filename.ext +,,
这里的filename.ext
是你想要修改的头文件的路径和名称。需要注意的是,我不确定VStudio是否总是会执行预编译事件,或只有在它检测到需要进行构建时才会执行。
touch
。我只是认为这应该是VS支持的一个功能。 - Martin Beckett我最近遇到了一个问题,想要在编译时始终更新__DATE__
和__TIME__
宏,其根本原因与现有问题相同。没有单一的答案适用于我的情况,但它们对我很有帮助。
如@Martin-Beckett在评论中提到的,即使在pre
构建事件中,如果没有检测到任何更改,也不会运行。关键是添加一个post
事件来修改感兴趣的文件。每次点击Build
时,它都将保证重新编译该文件,因为它已经在上次编译后发生了更改。
对我而言,del $(IntDir)file.obj
和copy /b file.h +,,
方法都可行。我更喜欢复制,因此按照以下步骤进行:
右键单击项目 -> 属性
-> 构建事件
-> 后期构建事件
> 命令行
并添加以下行:
copy /b file.h +,,
__DATE__
和__TIME__
字段时,是否会自动标记头文件已更改。我认为不会。) - cf-__DATE__
和__TIME__
由编译器自动设置为当前日期/时间。但是,只有当编译器认为文件已更改时,它才会处理该文件。 - Martin Beckett__DATE__
和__TIME__
,以及你如何在其他源文件中使用(在这个头文件中定义的任何内容)。 - LihO