KEIL如何添加LIB,keil如何添加lib文件
问题引出:为什么要做成lib库?
1、不想将自己写的源代码公开,但是同时库文件又需要让别人能够正常调用,那封装成lib的格式就是一个方法。
2、编译某些工程文件时非常耗时,像ST官方的库时,由于文件众多,编译一次可能得1两分钟,这时可以打包成库,节省不少的时间。但同时也不能用右键go to Definition 'XXX'来直接找到源文件定义了。
如何生成LIB库文件?
1. 创建空工程,准备好生成LIB库文件对应的.c和.h文件,如
commLib.h:
//commLib.h:void delay(int ms);unsigned char ccCrol(unsigned char org, unsigned char bitNum);unsigned char ccCror(unsigned char org, unsigned char bitNum);
commLib.c:
//commLib.c:void delay(int ms){ .......}unsigned char ccCrol(unsigned char org, unsigned char bitNum){ .......}unsigned char ccCror(unsigned char org, unsigned char bitNum){ .......}
2. 将这两个文件添加到项目中(只需要添加生成库所需要的头文件和源文件),并做以下设置:
选中Create Library
3. 编译之后在目录下生成对应的.LIB库文件了。
如何使用LIB库文件呢?
1. 新建一个项目,然后在你的项目中包含LIB库文件对应的头文件commLib.h。
2. 添加LIB库文件到项目中:
然后选择你要添加的LIB库文件:
添加完成之后就可以在项目中看到对应的库文件了:
3. 编译项目就OK了。
注意事项:创建lib的工程和使用lib的工程芯片型号要一致才可以!!!
Keil 下生成LIB库文件以及如何使用LIB库文件
如何生成LIB库文件?
1. 首先准备好生成LIB库文件对应的.c和.h文件,我这里用到的.c和.h文件分别是:
commLib.h:
/*======================================================*/
/* 延时函数,单位ms */
/* 晶振频率为11.0592MHz时延时1ms子程序 */
/*======================================================*/
void delay(int ms);
/*======================================================*/
/* 循环左移函数 2015年7月27日 21:34:44 */
/*======================================================*/
unsigned char ccCrol(unsigned char org, unsigned char bitNum);
/*======================================================*/
/* 循环右移函数 2015年7月29日 21:40:39 */
/*======================================================*/
unsigned char ccCror(unsigned char org, unsigned char bitNum);
commLib.c:
/*======================================================*/
/* 延时函数,单位ms */
/* 晶振频率为11.0592MHz时延时1ms子程序 */
/*======================================================*/
void delay(int ms)
{
int i, j;
for (i = ms; i > 0; i--)
{
for (j = 110; j > 0; j--)
{
}
}
}
/*======================================================*/
/* 循环左移函数 2015年7月27日 21:34:44 */
/*======================================================*/
unsigned char ccCrol(unsigned char org, unsigned char bitNum)
{
unsigned char i;
unsigned char high, low;
unsigned char after = org;
for (i = 0; i < bitNum; i++)
{
high = after & 0x80;
low = high >> 0x07;
after <<= 0x01;
after |= low;
}
return after;
}
/*======================================================*/
/* 循环右移函数 2015年7月29日 21:40:39 */
/*======================================================*/
unsigned char ccCror(unsigned char org, unsigned char bitNum)
{
unsigned char i;
unsigned char high, low;
unsigned char after = org;
for (i = 0; i < bitNum; i++)
{
low = after & 0x01;
high = low << 0x07;
after >>= 0x01;
after |= high;
}
return after;
}
2. 新建一个项目,将这两个文件添加到袄项目中,并做以下设置:
选中Create Library
3. 编译之后就可在项目目录下生成对应的.LIB库文件了。
如何使用LIB库文件呢?
1. 新建一个项目,然后在你的项目中包含LIB库文件对应的头文件commLib.h。
如图:
2. 添加LIB库文件到项目中:
然后选择你要添加的LIB库文件:
添加完成之后就可以在项目中看到对应的库文件了:
3. 编译项目就OK了。
在keil5 MDK 中,为一段代码封装LIB库
首先,创建一个工程,该工程选的芯片型号和原先的工程保持一致。
然后,导入源码,导入的源码不需要添加main.c 或者main()函数入口
lib库的名称最好和工程名称保持一致
编译,就会在output目录输出lib库
把输出的lib库文件和要提供给工程的.h文件添加到工程中
在新的工程中包含liba.h 调用liba.h 提供的接口就可以了