2012-11-21 27 views
8

在一個cpp文件中,我使用__DATE__宏來獲取編譯日期。強制MS VS2010重建每個版本的一個cpp文件

它給了我該文件的最後編輯的日期。但由於文件不經常更改,日期在大多數情況下是舊的,有時甚至是幾個月。

我真正想要的是項目的最後編譯的日期。

是否有一個設置來強制VS2010在項目的每次編譯時重建該單個cpp文件? 無論文件有什麼變化?

我到目前爲止發現的唯一方法是在構建之前通過腳本修改文件或刪除創建的obj文件,如果可能的話,我更喜歡VS中的解決方案。

回答

12

你可能會添加一個Pre-Build Steptouch(看這個thread)這個文件?

要添加一個Pre-Build Step,請打開您的Project Properties,然後Configuration Properties > Build Events > Pre-Build Event然後添加您想要在Command Line中執行的命令行。

遵循Amitd的建議,顯然你也可以使用PowerShell的touch文件,參見this的解釋。

正如Adrian McCarthy在下面的評論中所建議的,刪除.obj文件在使用源代碼管理的情況下更可取,並且您希望保留.cppread-only。使用Visual Studio公開的「宏」,刪除它們可以變得簡單:

del $(TargetDir)sourcefile.obj 

引用自Cheers和hth。 - 阿爾夫的另一種方式來實現這一

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. 
+2

或者,你的預構建的步驟可能只是刪除obj文件... – Liam

+0

這很可能是一個比較複雜的,這取決於您的配置,.OBJ可以在不同的地方輸出 – emartel

+0

窗戶上沒有任何觸摸,但是你的回答和谷歌讓我知道「copy/b Source + ,,」在Windows中具有相同的效果,因此應該可以工作。 – MacGucky

相關問題