我公司的一些人正在爭論它。給定源代碼和編譯器(使用相同的標誌/開關進行編譯),編譯器是否可能創建在不同操作系統中具有不同行爲的二進制文件?相同的編譯器在不同的操作系統上創建不同的行爲
具體來說,我們有一個C#項目,它必須在Windows XP和Windows 7中都運行,都是32位。編譯器是VS 2008.有一個解決方案文件(* .sln),其中包含我們用來構建軟件的所有必需文件,程序集,項目等。
是否有可能的是,如果碼(同一溶液文件)在2008年VS被編譯(具有相同的標誌/開關,因爲它是相同的溶液文件)的XP會產生一個二進制這將有行爲差異比在Windows 7中編譯的二進制文件?
通過行爲差異我的意思是,在特定情況下...
- 預期在XP中的XP版本將運行
- 如預期在Win 7
- 的勝利7版本將運行XP版本可能會導致在Win 7中出現錯誤(可能是崩潰或某些意外行爲),反之亦然
該項目太龐大而無法提出一個小測試項目。如果以上情況屬實,我想知道是什麼情況(如果有的話)。
什麼是「bug」? – 2012-01-03 04:56:10
構建有問題的二進制文件。做一個二進制比較。看看有什麼不同。我希望他們會一樣。確保僅構建版本版本。否則,將機器特定的信息添加到二進制文件和pdb中。 – AMissico 2012-01-03 04:58:34
調用只存在於Windows 7中的本機API方法時想到了。 – sq33G 2012-01-03 04:58:49