曾經聽到有人反應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進來了
沒有留言:
張貼留言