1. 程式人生 > >減小C語言生成的執行檔案大小的方法(嵌入式)

減小C語言生成的執行檔案大小的方法(嵌入式)

編譯過程新增

-ffunction-sections-fdata-sections

連結過程新增選項

-Wl,--gc-sections

可以使得編譯出來的程序去除無用函式和全域性變數符號,減少程序大小。
1. 編譯過程中新增-ffunction-sections和-fdata-sections會在輸出檔案object中給每個函式和全域性變數控制在一個section中並以對應的函式名或全域性變數名命名,
2. 連結過程中-Wl,–gc-sections,因為連結時查詢符號是以section為單元進行引用的,對於沒有引用到的符號,對應的section也不會引進來,故排除掉了無用的函式和全域性變更,從而減少可執行檔案的大小。
這些選項對-g和gprof會有些影響
參考檔案

【優化改進】Linux程序檔案瘦身——Linux環境驗證