2012-10-16 83 views
1

什麼決定我的可執行C++程序文件的大小?顯然它不僅取決於變量的大小/數量。我怎樣才能減少變量的數量保持不變?什麼決定我的可執行文件的大小?

+1

建立一個沒有調試信息,建立與優化尺寸,寫更少的代碼。 –

+1

顯然,最重要的因素是編譯器寫入結果文件的字節數。 – 2012-10-16 18:23:40

+0

基本上你問的是:「我的二進制可執行文件實際包含什麼?」 – tenfour

回答

1
  1. 動態鏈接到C++運行時。
  2. 編譯可執行文件而沒有調試信息。
  3. 編譯'優化大小'標誌。
  4. 刪除#iostream如果可以的fstream,並使用較低水平,而不是
  5. 此外,使用了大量的模板可能會導致大小增加以及
  6. 使用大量的內聯函數會導致尺寸增大。
  7. 如果你有很多靜態和全局變量,那麼儘可能地儘量減少它們。
4

有很多因素。

  • 優化編譯器
  • 靜態/動態鏈接
  • 靜態分配的內存
  • 調試信息
  • 剝離/未剝離的二進制文件

隨着gcc你可以使用-Os來優化尺寸的結果,但這可能會對性能產生影響。

1

除了其他答案之外,還有一點要牢記在心。過多的函數內聯可以顯着增加可執行文件的大小。

1

通常,可執行文件的大小並不是基於您有多少個變量常量。根據您所談到的不同的操作系統,這些都是一些方面會影響您的可執行文件的大小:&庫靜態鏈接到可執行

  1. 資源。
  2. 您選擇生成二進制文件的編譯器選項。
  3. 符號文件和其他可能未從可執行文件中去除的調試util。

這個答案似乎很相關:) Process for reducing the size of a executable

相關問題