隨著嵌入式系統(tǒng)功能越來越多,嵌入式軟件代碼也越來越復(fù)雜,Build時間也越來越長。
本文主要介紹如何降低build時間。
降低Build時間
使能Parallel Build
使能Parallel Build (Tools > Options > Project > Enable parallel build) (注意:IDE 9版本以上,Enable parallel build是默認勾選的):
正確包含頭文件
確保頭文件里面使用頭文件保護,以避免頭文件被重復(fù)包含:
#ifndef HFILE_H #define HFILE_H /* ... */ #endif
確保源文件里面只包含對應(yīng)需要的頭文件。源文件里面包含不需要的頭文件可能不會影響編譯的結(jié)果,但是會影響build時間(build的時候會對所有的頭文件進行預(yù)處理),另外還會影響代碼的可讀性(一般添加對應(yīng)的頭文件說明跟對應(yīng)模塊有關(guān)聯(lián))。
可以通過查看對應(yīng)的預(yù)處理輸出來查看對應(yīng)的頭文件包含信息:Options > C/C++ Compiler > Preprocessor > Preprocessor output to file:
編譯會輸出對應(yīng)的.i文件,里面會包含對應(yīng)頭文件包含信息:
創(chuàng)建和使用Library
對于一些不需要每次Re-build的代碼(典型的有RTOS的內(nèi)核靜態(tài)代碼,BSP的靜態(tài)代碼等),可以創(chuàng)建Library (Options > General Options > Output > Library),然后在工程里面添加對應(yīng)的Library (Options > Linker > Library > Additional libraries: (one per line)),這樣build的時候?qū)?yīng)Library的代碼就不需要重新編譯。
不使能編譯器輸出列表文件
不要勾選輸出編譯器輸出列表文件:Options > C/C++ Compiler > List:
把源文件移到本地電腦上進行Build
如果build的時候,對應(yīng)源文件沒有在本地電腦上,而是通過網(wǎng)絡(luò)連接訪問,建議把源文件移到本地電腦進行build,避免因為網(wǎng)絡(luò)連接問題導(dǎo)致build時間很長。
在Windows命令行調(diào)用iarbuild命令進行Build
通常來說,在Windows命令行調(diào)用iarbuild命令進行build比在IAR Embedded Workbench IDE進行build要稍微快一些。
在Linux服務(wù)器上使用IAR Build Tools進行Build
前面介紹的一些方法都是基于Windows的IAR Embedded Workbench,IAR提供了可以在Linux上運行的IAR Build Tools:
通常來說Linux上調(diào)用IAR Build Tool進行build會比Windows的IAR Embedded Workbench進行build要快一些。下面是在同等電腦配置下Linux的IAR Build Tools和Windows的IAR Embedded Workbench的build時間對比,可以看到Linux的IAR Build Tools比Windows的IAR Embedded Workbench的build時間要降低不少。如果Linux服務(wù)器電腦配置更高,對應(yīng)的build時間會降低更多。
總結(jié)
本文主要介紹了如何降低build時間的一些方法,用戶可以根據(jù)具體情況選擇對應(yīng)的方法來降低build時間,提高研發(fā)效率。
審核編輯:劉清
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3629瀏覽量
129790 -
RTOS
+關(guān)注
關(guān)注
22文章
820瀏覽量
119914 -
C++語言
+關(guān)注
關(guān)注
0文章
147瀏覽量
7037 -
預(yù)處理器
+關(guān)注
關(guān)注
0文章
13瀏覽量
2250
發(fā)布評論請先 登錄
相關(guān)推薦
請問大致有哪些方法能夠完成我檢測擾動發(fā)生時間的目的呢
有什么方法可以降低LCD的噪聲?
有什么方法可以實現(xiàn)時間戳轉(zhuǎn)日期的算法呢
如何降低build時間的辦法
![如何<b class='flag-5'>降低</b><b class='flag-5'>build</b><b class='flag-5'>時間</b>的辦法](https://file1.elecfans.com/web2/M00/96/61/wKgZomTnHrGAF9__AAAc5bjLVck075.png)
評論