寫在前面 Ⅰ
庫,對于編程的人來說,都應該知道。但有很多初學者,及已經工作的朋友對庫的理解還處于書本概念階段,也就是沒有生成和使用過庫。
其實,還有很多朋友不知道printf打印函數是怎么回事,我們在代碼中調用printf函數打印數據時,已經調用了標準的“微庫”,這里可以參看我的文章:關于printf和scanf在開發STM32中的配置和應用
什么情況下要生成庫?
1.代碼模塊化定型。也就是說模塊代碼的功能在經過無數次驗證,并無誤后,方便團隊的協同開發,這個時候可以將模塊代碼生成庫。
2.提供SDK給客戶開發。這里一般是指源代碼對客戶不具有公開性的原因,包括某些特有算法、實現特有功能的具體過程等。
生成庫的原則?
簡單來說就是使代碼結構化、模塊化、源碼不具公開性等。要求代碼高內聚、低耦合。
Keil、IAR如何生成庫? Ⅱ
代碼工程生成庫的過程只需要對工程進行配置即可,這里再簡單講一下過程,其實在我“系列教程”中有相關內容。
Keil:Project -> Options for Target -> Output 勾選上“Create Library”即可。
IAR:Project -> Options -> General Options -> Output 勾選上“Library”即可。
靜態庫和動態庫的區別? Ⅲ
上面Keil生成的庫是以“.Lib”為后綴的文件,IAR是以“.a”為后綴的文件,你們知道他們是靜態庫還是動態庫嗎?
答案是:二者都是靜態庫。
為什么都是靜態庫呢? 先看一下靜態庫和動態庫的區別就會知道。
簡單的來說二者的區別:
靜態庫:就是在編譯的時候直接將需要的代碼連接進可執行程序中去;
動態庫:就是在需要調用其中的函數時,根據函數映射表找到該函數然后調入堆棧執行。
-
IAR
+關注
關注
5文章
350瀏覽量
36664 -
靜態庫
+關注
關注
0文章
21瀏覽量
7426 -
keil
+關注
關注
68文章
1212瀏覽量
166840
發布評論請先 登錄
相關推薦
評論