问题引出:为什么要做成lib库?

1、有些人不想将自己写的源代码公开,但是同时库文件又需要让别人能够正常调用,那封装成lib的格式就是一个好方法。

2、编译某些工程文件时非常耗时,像UCGUI和ST官方的库时,由于文件众多,编译一次可能得1两分钟,这时可以打包成库,这时编译工程时就不会再次编译库的文件,节省不少的时间。(但同时也不能用右键go to Definition 'XXX'来直接找到源文件定义了,这是一点不足的地方)

制作方法:以UCGUI为例

第一步:打开一个测试通过的工程。(如果本来要打包的库文件里面的代码有错的话,打包成库后也是不能用的,这步是关键)

【步骤】KEIL MDK LIB库文件的制作-LMLPHP

测试没有问题后将不需要的部分删除,后如下图所示

【步骤】KEIL MDK LIB库文件的制作-LMLPHP

第二步:打开KEIL MDK->Project->Option for target...->Output,选 中Create Executable:....选项。

【步骤】KEIL MDK LIB库文件的制作-LMLPHP

第三步:重新编译,即可在原本生成Hex文件的目录下找到*.lib文件。

打开原工程,只需将原来的.c文件移除,添加进该.lib文件即可使用

02-27 08:59