2013-01-18 22 views
1

我最近使用GCC版本2.9-gnupro-98r2從我的計算機上完全相同的源代碼和完全相同的路徑創建了兩個可執行文件。當我對兩個可執行文件進行二進制比較時,可執行文件的.data部分存在差異。有誰知道爲什麼會發生?我需要每次生成一致的可執行文件。GCC .data部分更改

謝謝!

+1

您擁有一致的可執行文件。爲什麼你需要一個_identical_可執行文件? – Useless

+0

一致定義爲「不變」。由於我的可執行文件更改,因此我沒有一致的可執行文件。我需要能夠爲工作相關的原因生成相同/一致的可執行文件。 – mattsaladin

回答

0

它可能與可執行文件中的時間戳信息有關。如果您的任何源使用宏,則在不同時間編譯時,二進制可執行文件將會有所不同。

+0

經過進一步調查和比較我的鏈接地圖後,我發現我的可執行文件的差異是由於我的可執行文件的調試信息中包含臨時文件夾的路徑導致的。從可執行文件中剝離調試信息後,它們是相同的。 '__TIME__'宏是有用的信息,但我已經在我的代碼中檢查過了(我應該在我的問題中指定)。儘管謝謝你的回答! – mattsaladin