gcc連接,去掉不用的函數和data

編譯代碼的時候,沒有用到的函數常常會被編譯,該怎麼才能去掉呢?函數

解決方法:io

CFLAGS 加上 -ffunction-sections -fdata-sections編譯

LDFLAGS 加上 --gc-sectionsfunction

原理以下:原理

-function-sections的意思是,將不一樣函數編譯到不一樣的section上面。若是沒有這個選項,全部的函數都會編譯到一個section上面,因而函數就不能被「剝離」。gc

-fdata-sections同理。方法

 --gc-sections 表示把不要的函數section去掉data

相關文章
相關標籤/搜索