2009年11月6日 星期五

static library很佔flash size?

曾經聽到有人反應static library會很佔版子上的flash size
所以我想順便說明一下這中間的差別
假設分成三種case來看

1. 先不呼叫library提供的func,且當然也先不link
假設original code編好佔了約200KB

2. 一樣先不呼叫func,但在Makefile裡頭有加上-l *.a的部分
編好的ELF一樣是size不變的

3. 開始呼叫func,且作link
編好的ELF當然變大,但....size不會是等於200KB + *.a lib size
增加的部分當然只有你用到的func相關的code size
而不是整個static library size

另外
要注意的是
link是以object為單位
所以自己寫的library
最好是類似功能的,個別放單一個object
可不要通通寫成一個object
這樣就會將很多不必要的code通通link進來了

沒有留言:

張貼留言