Keil IAR生成庫及庫的說明與使用

2021-07-26 19:43:59 字數 1362 閱讀 9463

庫,對於程式設計的人來說,都應該知道。但有很多初學者,及已經工作的朋友對庫的理解還處於書本概念階段,也就是沒有生成和使用過庫。

其實,還有很多朋友不知道printf列印函式是怎麼回事,我們在**中呼叫

printf

函式列印資料時,已經呼叫了標準的「微庫」,這裡可以參看我的文章:關於printf和

scanf

在開發stm32

中的配置和應用

什麼情況下要生成庫?

1.**模組化定型。也就是說模組**的功能在經過無數次驗證,並無誤後,方便團隊的協同開發,這個時候可以將模組**生成庫。

2.提供

sdk給客戶開發。這裡一般是指源**對客戶不具有公開性的原因,包括某些特有演算法、實現特有功能的具體過程等。

生成庫的原則?

簡單來說就是使**結構化、模組化、原始碼不具公開性等。要求**高內聚低耦合

keil:project -> options for target -> output 勾選上「

create library

」即可。

iar:project -> options -> general options -> output 勾選上「

library

」即可。

上面keil生成的庫是以「

.lib

」為字尾的檔案,

iar是以「

.a」為字尾的檔案,你們知道他們是靜態庫還是動態庫嗎?

答案是:二者都是靜態庫

為什麼都是靜態庫呢?

先看一下靜態庫和動態庫的區別就會知道。

簡單的來說二者的區別:

靜態庫:就是在編譯的時候直接將需要的**連線進可執行程式中去;

動態庫:就是在需要呼叫其中的函式時,根據函式對映表找到該函式然後調入堆疊執行。

從上面的描述可以知道,靜態庫是我們mcu開發者常用的一種,而動態庫常用於

linux

、windows

等開發場合。

Linux 靜態庫與動態庫的生成及呼叫

一,庫 一種可執行 的二進位制形式,可以被載入記憶體執行。其中庫分為靜態庫 動態庫 二,靜態庫和動態庫的區別 1 linux 下靜態庫 名字一般為 lib a利用靜態函式庫編譯成的檔案比較大,因為整個 函式庫的所有資料都會被整合進目標 中,他的優點就顯而易見了,即編譯後的執行程式不需要外部的函式庫支...

2 5 庫檔案的生成及使用

分靜態庫和動態庫 靜態庫 動態庫 動態庫檔案的字尾名為.so,檔名以lib開頭 生成動態庫的方法 gcc shared fpic o 動態庫名 目標檔案1,動態庫的呼叫有兩種方式 隱式呼叫 顯示呼叫。隱式呼叫 方法簡單,呼叫和靜態庫一樣,但是需要把動態庫放在系統能找到的地方 顯示呼叫 include...

靜態庫 a和動態庫 so生成及呼叫

gcc編譯器工具一般位於 usr bin或者 usr local bin目錄,但它會從其它位置執行各種編譯器支援的應用程式,這個位置可能是 usr lib gcc lib 目錄,gnu c c 編譯器的各個工具和gnu專用標頭檔案都儲存在這裡。標頭檔案,一般位於 usr include,包含標頭檔案...