剝離GCC 和ld 中未使用的符號以最佳化程式碼大小
最佳化執行檔大小至關重要,尤其是在資源有限的嵌入式環境。本文解決了使用 GCC 和 ld 從執行檔中刪除未使用的 C/C 符號的問題。
GCC 的 -fdata-sections 和 -ffunction-sections 標誌指示編譯器將程式碼分成翻譯單元內的不同部分。這可確保未使用的程式碼、資料和函數儲存在單獨的部分中。
編譯程式碼後,連結器會使用 --gc-sections 標誌刪除未引用的部分。此過程可確保僅使用的程式碼保留在最終的可執行檔中。例如,要從包含兩個函數(其中一個未使用)的名為test.cpp 的檔案中刪除未使用的符號,請使用以下命令進行編譯:
gcc -Os -fdata-sections -ffunction-sections test.cpp -o test -Wl,--gc-sections
-Os 標誌指示GCC優先考慮大小優化。
透過將這些技術合併到建置過程中,開發人員可以顯著減少可執行檔的大小,從而提高資源受限環境中的載入效能。
以上是如何使用 GCC 和 ld 去除未使用的符號來減少執行檔的大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!