動態庫空間優化

1. 使用-OS編譯

Os在-O2的基礎上,去除對齊的功能,意在去除空白空間,在與-O2幾乎一致的效率上面,追求空間優化

2. objcopy去除comment段

.comment段:存放的是編譯器版本信息,比如字符串"GCC:(GNU)4.2.0"

objcopy是交叉編譯鏈的工具

3.去除未被使用的function和data

(1)編譯時候加上 -ffunction-sections   和 -fdata-sections
(2)鏈接時候加上 -Wl,-gc-sections

如: LD_FLAGS    += -Wl,-gc-sections        CC_FLAGS+=-ffunction-sections

4. 隱藏符號

對於動態庫只需要頭文件的接口對外可見,其餘的隱藏。

(1)對外可見函數加上 __attribute ((visibility("default")))
(2)編譯的時候加上-fvisibility=hidden

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章