keil中生成个人库文件及调用方法

keil中生成个人库文件及调用方法

ID:6357050

大小:447.50 KB

页数:10页

时间:2018-01-11

keil中生成个人库文件及调用方法_第1页
keil中生成个人库文件及调用方法_第2页
keil中生成个人库文件及调用方法_第3页
keil中生成个人库文件及调用方法_第4页
keil中生成个人库文件及调用方法_第5页
资源描述:

《keil中生成个人库文件及调用方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、如何在keil中生成个人库文件及调用方法在网上找了些资料Keil中如何使用自己生成的LIB库代码积累多了,大家可能都尝试过自己写个库,方便调用,我最初的办法是把常用的函数放到一个个.C文件里头,要用的时候就把一个个.C添加到Group里面,这种方法就很麻烦了,每次新建一个工程都要ADD半天这里8279.C,delay_ms.c,watchdog.c,function.c都是我以前写过现在拿来重用的代码这样做还有一个问题,如果某个函数未调用,编译器就会给一个警告,UNCALLEDSEGMENT,I

2、GNOREDFOROVERLAYPROCESS,"未调用的段,被忽略",虽然无啥大碍,但看着也挺不爽的于是自己生成LIB文件,.lib是生成了,但就是没能用,始终有警告***WARNINGL1:UNRESOLVEDEXTERNALSYMBOL未解析的外部标号***WARNINGL2:REFERENCEMADETOUNRESOLVEDEXTERNAL引用外部为解析的段因为编译器没有找到那个函数的代码,也就未解析了,百度了一下,前几个结果竟然都没给出一个有效的解决办法其实问题很简单,你在Group上

3、右键ADD时注意一下对话框中允许添加的文件扩展名,除了c,asm之外,还有lib,把你的lib文件加进去,ok了--------下面是我用库的一些记录--------------------------------------------------------------------库的生成库的使用(在group中添加lib文件),在主调的C文件中include.h文件KEIL中库可以由多个.obj(与.C对应)组成,而连接是以.obj为最小单元,即某.obj中有函数被调用时,则整个.obj中

4、所有函数都会被连接到.hex文件通常为每一个函数编一个.C文件,而整个lib用一个.h文件,这样就可以使只有被调用的函数参与连接Keil生成Lib调用Lib2011-06-0116:01:49

5、分类:STM32学习

6、标签:libkeil文件调用函数

7、字号大中小订阅1、维护自己写的代码不被别人乱改动。lib不是c代码,不能对它编辑,只能通过.h文件调用。所以为了别人能使用你的lib,一定要给他.h文件。2、可以把多个.c文件合成一个lib文件,这样在工程就不必要把每一个.c文件都添加一遍。3、相比

8、添加.c文件,它具有不使用已经申明的extern函数也不会出现Keil经典的UNCALLEDFUNCwarning。更重要的是,不使用的函数编译时不会产生代码,从而大大减小.hex文件。这对小容量的单片机来说是非常可贵的。废话少说,下面以本人刚写的1602程序为例一个教大家怎么生成和使用lib文件。为了实现上面说的lib的第三个作用,大家要把独立的子函数用不同的.c分开写。因为该.c文件一旦使用,那么里面的子函数就会全部被编译,这样就不能达到不调用能节省rom的目的了。下面是写好的程序:编译成功

9、后,在project》optionsfortarget》Output中,其设置如图。点击确定之后就会在你的工程文件夹中产生一个1602.lib的文件。再在keil的projectworkplace中把lib文件添加进去,并remove掉除mian函数的其他.c文件,如图。Keil的lib生成个人总结 1推荐1.生成lib的工程可以没有main函数,可以只有一个.c文件,一个.c文件中可以只有一个函数2.需要在lib工程中建立一个.h文件,必须用extern声明各全局变量和函数.3.调用lib文件

10、的工程中必须包括lib中的.h文件,也就是lib工程和调用工程都包含同一个.h文件(好像有点废话)2.Lib的文件要分的细一点,没有调用关系的两个函数不要放到同一个C文件中.没有调用关系的最好是一个函数单独放在一个.c文件中.这是为了避免在keil中应用程序调用lib库里出现告警.因为LIB51在链接的时候是按模块来链接的,一个模块就对应一个C文件,假如链接器因为要使用你一个函数fA而引入了A模块,那么A模块中的另外的函数也会被引入,而另外的函数你又没有使用的话,那么就会引发Keil经典的UNC

11、ALLEDFUNC的warning。通常为每一个函数编一个.C文件,而整个lib用一个.h文件,这样就可以使只有被调用的函数参与连接3.调用lib库时需要在工程中将.lib文件加进来.在Group中右键,然后Add,注意文件类型中选择*.lib.暂时就总结到这里,很重要哟.LCD1602.C里面包含LCD1602.HLCD1602.H的文件格式设置生成lib文件Lib文件调用添加lib文件对话框添加后的lib文件呵呵^_^,这样就可以删除LCD1602.C文件了,只留下LCD1602.Lib和L

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。