首頁 > 後端開發 > C++ > 如何透過刪除未使用的符號來減少 C/C 可執行檔的大小?

如何透過刪除未使用的符號來減少 C/C 可執行檔的大小?

Barbara Streisand
發布: 2024-12-17 13:05:25
原創
988 人瀏覽過

How Can I Reduce C/C   Executable Size by Stripping Unused Symbols?

最佳化執行檔大小:剝離未使用的C/C 符號

最小化執行檔大小至關重要,尤其是在資源有限的環境中。透過從可執行檔中剝離未使用的符號,它在記憶體使用方面變得更精簡、更有效率。本文探討如何使用 GCC 和 ld 來實現此最佳化。

GCC 和 ld 設定

GCC 和 ld 可以設定為從執行檔和函式庫中刪除未使用的符號。為此,需要兩個階段的編譯:

  1. 資料分離:在編譯期間,在 GCC 中使用 -fdata-sections 和 -ffunction-sections 標誌。這些標誌指示編譯器將程式碼分隔到每個翻譯單元內的單獨部分,包括函數、類別和外部變數。
  2. 連結最佳化:將翻譯單元連結在一起時,使用連結器最佳化標誌 -Wl,--gc-sections。此標誌會觸發連結器自動丟棄任何未引用的部分。

範例

考慮一個檔案 test.cpp,其中包含兩個宣告的函數,但其中之一未使用。若要從最終可執行檔中排除未使用的函數,請使用下列命令:

gcc -Os -fdata-sections -ffunction-sections test.cpp -o test -Wl,--gc-sections
登入後複製

-Os 標誌指示 GCC 優先考慮程式碼大小最佳化。

結論

透過應用這些配置更改,編譯器和連結器可以識別並刪除未使用的符號,從而顯著減小生成的可執行檔的大小。這種優化對於嵌入式系統或其他具有嚴格資源限制的環境尤其有價值。

以上是如何透過刪除未使用的符號來減少 C/C 可執行檔的大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板