這不是我的問題。這是我在quora上發現的一個休眠問題。一個答案是,一些頭文件可能已經改變,但問題的作者聲稱他們沒有。我很想聽到什麼人在這裏不得不說:)未修改的C++文件的目標代碼在重新編譯時可能發生什麼變化?
3
A
回答
9
- 改變的報頭文件
- 不同的編譯器
- 不同的命令行選項
- 時間戳,目標代碼
- 隨意性代碼生成或優化
- 配置文件驅動的優化,改變了配置文件
- 由操作系統更改導致的非確定性配置
1
你不提平臺,但如果它的.NET,那麼它可能是出於同樣的原因,如通過埃裏克利珀這裏描述的C#編譯器會發生什麼:http://ericlippert.com/2012/05/31/past-performance-is-no-guarantee-of-future-results/
+0
我特別喜歡那個「依賴於文件放置在目錄中的順序」,因爲這對人們來說幾乎是不可見的。 –
相關問題
- 1. 如何在修改C++頭文件時重新編譯?
- 2. Prestashop:SMARTY - 當文件被修改時強制編譯/重新編譯
- 3. 爲什麼excel的內容在修改密碼時發生變化?
- 4. 代碼格式化能否導致目標文件內容發生變化?
- 5. 甚至當源和編譯器標誌未修改時,什麼原因導致目標文件在編譯之間變化?
- 6. Visual C++工作室,僅重新編譯修改後的文件
- 7. Dotpeek - 修改DLL文件 - 在項目中使用修改(重新編譯)
- 8. 未能在XE2上重新編譯indy10的源代碼
- 9. 爲什麼「變量可能未被初始化」阻止編譯?
- 10. Make Play!在修改文件時重新編譯,而不是在瀏覽器刷新時重新編譯
- 11. 變化少進口的文件不會觸發重新編譯
- 12. 爲什麼我的源代碼在c中使用strcpy時發生了變化
- 13. Makefile:如果源代碼發生變化,重建目標
- 14. Cordova:編譯時js-moudle的文件發生了變化
- 15. 重新編譯未更新的文件
- 16. 編譯目標-C代碼到C
- 17. 爲什麼在源文件更改時不make重新編譯這些目標文件?
- 18. 爲Windows目標編譯C++ 2011代碼有什麼工具?
- 19. 在Codelite上編譯項目(C++)重新編譯太多文件
- 20. 爲什麼在C++中添加註釋會改變已編譯的代碼(對象)和可執行文件
- 21. 當jQuery代碼中的文本框值發生變化時,asp.net textbox的改變事件未被觸發
- 22. C++:爲什麼代碼正在編譯
- 23. 爲什麼gcc可以編譯C++代碼但不能鏈接?
- 24. 未上傳的文件會發生什麼變化?
- 25. c + + Boost多指標,修改要求函子,未能編譯
- 26. hg顯示修改的文件不變,爲什麼可能是?
- 27. 在「目標」文件夾中生成的Maven java類未編譯
- 28. 修改/編譯開源項目源代碼的最佳方法是什麼?
- 29. 頁面重新編譯代碼更改
- 30. Linux內核源代碼修改和重新編譯
您還假設編譯器是用相同的選項(包括優化級別)調用的? – loudandclear
開始的時間戳。實際上幾年前有一項澳大利亞專利申請,涉及通過操縱系統時間使編譯器產生按位相同的目標代碼的方法或手段。我以顯而易見和現有技術爲由,強烈地反對它,因爲我在1970年代就是這樣做的。 – EJP