1. 程式人生 > >STM32學習筆記之Keil工程Lib庫檔案的製作和運用

STM32學習筆記之Keil工程Lib庫檔案的製作和運用

    最近看了百度手環開源專案,發現所有的演算法都被封裝成了一個lib檔案在keil中呼叫 也是第一次學習到。

問題引出:為什麼要做成lib庫?

1、有些方案公司為了將自己寫的關鍵部分原始碼不進行公開,但是同時庫檔案又需要讓別人能夠正常呼叫,那封裝成lib的格式就是一個好方法。

2、編譯某些工程檔案時非常耗時,像UCGUI和ST官方的庫時,由於檔案眾多,編譯一次可能得1兩分鐘,這時可以打包成庫,這時編譯工程時就不會再次編譯庫的檔案,節省不少的時間。

唯一一點不好的是:不能用右鍵go to Definition 'XXX'來直接找到原始檔定義了。但是一般別人都是測試好就封裝成lib的

製作方法:以UCGUI為例

第一步:開啟一個測試通過的工程。(如果本來要打包的庫檔案裡面的程式碼有錯的話,打包成庫後也是不能用的,這步是關鍵)

測試沒有問題後將不需要的部分刪除,後如下圖所示

第二步:開啟KEIL MDK->Project->Option for target...->Output,選 中Create Executable:....選項。

第三步:重新編譯,即可在原本生成Hex檔案的目錄下找到*.lib檔案。

開啟原工程,只需將原來的.c檔案移除,新增進該.lib檔案即可使用(程式呼叫要包含lib檔案中c檔案的所有標頭檔案)。

特別注意的是:Lib的檔案要分的細一點,沒有呼叫關係的兩個函式不要放到同一個C檔案中

. 沒有呼叫關係的最好是一個函式單獨放在一個.c檔案中.這是為了避免在keil中應用程式呼叫lib庫裡出現告警.