編譯代碼的時候,沒有用到的函數常常會被編譯,該怎麼才能去掉呢?函數
解決方法:io
CFLAGS 加上 -ffunction-sections -fdata-sections編譯
LDFLAGS 加上 --gc-sectionsfunction
原理以下:原理
-function-sections的意思是,將不一樣函數編譯到不一樣的section上面。若是沒有這個選項,全部的函數都會編譯到一個section上面,因而函數就不能被「剝離」。gc
-fdata-sections同理。方法
--gc-sections 表示把不要的函數section去掉data