如圖 1,未進行任何優化時,keil編譯生成的文件大小為:9668字節。
第一步:project >> Option for Target “**” 打開如圖 2界面。選擇“target”,勾選上“Use MicroLIB”再編譯。
分析:microLIB是缺省的C庫,而且microLIB進行了高度優化。如果不勾選“Use MicroLIB”,keil會連接標准C庫。所以勾選“Use MicroLIB”會減小code大小。
第二步:project >> Option for Target “**” 打開如界面。選擇“C/C++”,勾選上“One ELF Section per Functin”再編譯。
分析:“One ELF Section per Functin”就是將每個函數都生成一個ELF文件,最會將需要的函數鏈接成一個大的ELF文件。但是如果沒有勾選“One ELF Section per Functin”。Keil將每個文件編譯成一個ELF文件(即使文件中用未被使用的函數),最會鏈接成一個ELF文件。所以勾選“One ELF Section per Functin”會使code變小。