什麼決定我的可執行C++程序文件的大小?顯然它不僅取決於變量的大小/數量。我怎樣才能減少變量的數量保持不變?什麼決定我的可執行文件的大小?
1
A
回答
1
- 動態鏈接到C++運行時。
- 編譯可執行文件而沒有調試信息。
- 編譯'優化大小'標誌。
- 刪除#iostream如果可以的fstream,並使用較低水平,而不是
- 此外,使用了大量的模板可能會導致大小增加以及
- 使用大量的內聯函數會導致尺寸增大。
- 如果你有很多靜態和全局變量,那麼儘可能地儘量減少它們。
4
有很多因素。
- 優化編譯器
- 靜態/動態鏈接
- 靜態分配的內存
- 調試信息
- 剝離/未剝離的二進制文件
隨着gcc
你可以使用-Os
來優化尺寸的結果,但這可能會對性能產生影響。
1
除了其他答案之外,還有一點要牢記在心。過多的函數內聯可以顯着增加可執行文件的大小。
1
通常,可執行文件的大小並不是基於您有多少個變量常量。根據您所談到的不同的操作系統,這些都是一些方面會影響您的可執行文件的大小:&庫靜態鏈接到可執行
- 資源。
- 您選擇生成二進制文件的編譯器選項。
- 符號文件和其他可能未從可執行文件中去除的調試util。
這個答案似乎很相關:) Process for reducing the size of a executable
相關問題
- 1. 我能做些什麼來減少我的可執行文件的大小(Delphi)?
- 2. 什麼會影響Delphi可執行文件的大小?
- 3. 爲什麼要更改結構大小,更改可執行文件的大小?
- 4. 爲什麼我的無堆棧可執行文件很小
- 5. 爲什麼我的C++可執行文件如此之大?
- 6. 爲什麼我的C++輸出可執行文件太大了?
- 7. 可執行文件的大小?
- 8. 爲什麼Haskell/GHC可執行文件在文件大小上如此之大?
- 9. 什麼可執行文件啓動了我的可執行文件?
- 10. vb.NET確定是什麼在我的可執行文件
- 11. 爲什麼可執行文件的文件大小比不帶include的.cpp源文件大?
- 12. 一個可執行文件如何可以在文件大小這麼小?
- 13. 減少pyinstaller可執行文件大小
- 14. armv7s可執行文件大小增加
- 15. 什麼決定了Tkinter Text小部件的大小?
- 16. .net執行文件的大小最小?
- 17. 最小的PC/Mac可執行文件的大小?
- 18. 大會對C的可執行文件的大小
- 19. 過大的可執行文件的大小
- 20. 如何獲取庫/可執行文件的可執行代碼段的大小?
- 21. 小小的python可執行文件?
- 22. 從py2exe減小可執行文件的大小
- 23. 如何縮小Clozure Common Lisp可執行文件的大小?
- 24. 鏈接後最小的可執行文件大小
- 25. iPhone上的最大可執行文件大小?
- 26. 可疑的靜態鏈接可執行文件大小
- 27. 爲什麼我的Makefile不能創建可執行文件?
- 28. 什麼是我們可以在inode中存儲的文件的最大大小
- 29. C++對象文件的大小取決於什麼?
- 30. 爲什麼可執行文件不可執行?
建立一個沒有調試信息,建立與優化尺寸,寫更少的代碼。 –
顯然,最重要的因素是編譯器寫入結果文件的字節數。 – 2012-10-16 18:23:40
基本上你問的是:「我的二進制可執行文件實際包含什麼?」 – tenfour