簡體   English   中英

GNU make:如何在不重新執行規則的情況下修改文件?

[英]GNU make: How to modify a file without re-executing rules?

假設我想對文件做一個非常小的(即評論,空格清理等)更改但我不希望Make經歷耗時(> 24小時)的重建過程。 有沒有辦法做到這一點?

我知道你可以使用“觸摸”來做相反的事情(即重建而不編輯文件),但這並沒有真正幫助。

你也可以用touch來做相反的事情。 我這樣做的一種方式很簡單:

 $ cp -a foo.c foo.c.bak
 $ <fix up foo.c>
 $ touch foo.c -r foo.c.bak

因為cp -a應該保留修改時間戳。 類似的另一種方法是注意修改時間戳(例如stat -c "%y" foo.c或類似的東西)並使用-m-t參數來touch而不是復制文件。

編輯文件后,您可以將“修改時間”更改為您想要的任何內容

touch -m -r filename

其中filename是具有您要復制時間的文件的名稱(來自構建的另一個未觸摸的文件)。 http://www.computerhope.com/unix/utouch.htm

觸摸仍然是您只需要向后使用它的答案。

  1. 復制文件(保留修改時間, -p )。
  2. 編輯原始文件。
  3. 使用touch重置修改/等。 時間回到以前的狀態(觸摸-r file.copy文件)。

這應該足以做你想要的。

並且記得你總是可以讓make -q看看它是否認為它有任何工作要做,以確保你做對了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM