2009-09-10 124 views
1

在不同時間從同一個源編譯的2個可執行文件是否具有相同的MD5SUM?應該在不同時間從同一個源編譯的2個可執行文件具有相同的MD5SUM?

我一直在使用藝術風格評估自動代碼格式。

一個測試,我所做的是:

  1. 做一個乾淨的編譯
  2. MD5SUM可執行
  3. 清潔build目錄了。
  4. 對代碼運行Astyle格式化程序
  5. 重新編譯代碼。
  6. MD5SUM可執行

我的理論是,如果有對代碼沒有功能變化MD5SUMS應該匹配,但MD5SUMS不匹配。我的假設有什麼問題嗎?或者運行ArtisticStyle(應該只改變Whitespace)會在我的可執行文件中導致語義差異?

編輯:如果MD5SUMS將無法正常工作,任何人都可以推薦一個方法來「證明」,這兩個可執行文件是等價的?

+0

從技術上講,兩個可執行文件並不等同。它們都是不同時間編輯的產物。 – scottm 2009-09-10 20:09:46

回答

2

二進制文件可能至少包含不同的時間戳。因此,不,從同一代碼庫開始的兩個後續構建很可能會產生不同的二進制文件。在功能上相同,大概相同的大小,甚至相同的代碼,但md5總和不匹配。

1

您試圖證明的是,這兩者在功能上是等效的,因此您需要使用二進制diff實用程序查看二進制文件中的每個更改。這將是一個手動驗證,但如果您發現差異性很小,並且與德米特里指出的時間戳相關,那麼您可以提出索賠。

相關問題