- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何在keil中生成个人库文件及调用方法 在网上找了些资料 Keil中如何使用自己生成的LIB库 代码积累多了,大家可能都尝试过自己写个库,方便调用,我最初的办法是把常用的函数放到一个个.C文件里头,要用的时候就把一个个.C添加到Group里面,这种方法就很麻烦了,每次新建一个工程都要ADD半天 这里8279.C,delay_ms.c,watchdog.c,function.c都是我以前写过现在拿来重用的代码 这样做还有一个问题,如果某个函数未调用,编译器就会给一个警告,UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS,未调用的段,被忽略,虽然无啥大碍,但看着也挺不爽的 于是自己生成LIB文件,.lib是生成了,但就是没能用,始终有警告 *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL未解析的外部标号 *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL引用外部为解析的段 因为编译器没有找到那个函数的代码,也就未解析了,百度了一下,前几个结果竟然都没给出一个有效的解决办法 其实问题很简单,你在Group上右键ADD时注意一下对话框中允许添加的文件扩展名,除了c,asm之外,还有lib,把你的lib文件加进去,ok了 --------下面是我用库的 一些记录-------------------------------------------------------------------- 库的生成 库的使用(在group中添加lib文件),在主调的C文件中include .h文件KEIL中库可以由多个.obj(与.C对应)组成,而连接是以.obj为最小单元,即某.obj中有函数被调用时,则整个.obj中所有函数都会被连接到.hex文件通常为每一个函数编一个.C文件,而整个lib用一个.h文件,这样就可以使只有被调用的函数参与连接 Keil 生成Lib 调用Lib 2011-06-01 16:01:49| 分类: STM32学习 | 标签:lib keil 文件 调用 函数 |字号大中小 订阅 1、维护自己写的代码不被别人乱改动。lib 不是c 代码,不能对它编辑,只能通过.h 文件调用。所以为了别人能使用你的lib,一定要给他.h 文件。2、可以把多个.c 文件合成一个lib 文件,这样在工程就不必要把每一个.c 文件都添加一遍。3、相比添加.c 文件,它具有不使用已经申明的extern 函数也不会出现Keil 经典的UNCALLED FUNC warning。更重要的是,不使用的函数编译时不会产生代码,从而大大减小.hex 文件。这对小容量的单片机来说是非常可贵的。废话少说,下面以本人刚写的1602 程序为例一个教大家怎么生成和使用lib 文件。为了实现上面说的lib 的第三个作用,大家要把独立的子函数用不同的.c 分开写。因为该.c 文件一旦使用,那么里面的子函数就会全部被编译,这样就不能达到不调用能节省rom的目的了。下面是写好的程序: 编译成功后,在project》options for target》Output 中,其设置如图。 点击确定之后就会在你的工程文件夹中产生一个1602.lib 的文件。 再在keil 的project workplace 中把lib 文件添加进去,并remove 掉除mian 函数的其他.c文件,如图。 Keil的lib生成个人总结 1 推荐 1. 生成lib 的工程可以没有main函数,可以只有一个.c文件,一个.c文件中可以只有一个函数 2. 需要在lib工程中建立一个.h文件, 必须用extern声明各全局变量和函数. 3. 调用lib文件的工程中必须包括lib中的.h文件, 也就是lib工程和调用工程都包含同一个.h文件(好像有点废话) 2.Lib的文件要分的细一点,没有调用关系的两个函数不要放到同一个C文件中. 没有调用关系的最好是一个函数单独放在一个.c文件中.这是为了避免在keil中应用程序调用lib库里出现告警. 因为LIB51在链接的时候是按模块来链接的,一个模块就对应一个C文件,假如链接器因为要使用你一个函数fA而引入了A模块,那么A模块中的另外的函数也会被引入,而另外的函数你又没有使用的话,那么就会引发Keil经典的UNCALLED FUNC的warning。 通常为每一个函数编一个.C文件,而整个lib用一个.h文件,这样就可以使只有被调用的函数参与连接 3.调用lib库时需要在工程中将.lib文件加进来. 在Group中右键,然后Add ,注意文件类型中选
您可能关注的文档
最近下载
- 2024年义务教育英语课程标准(2022年版)测试题(含答案)1-.docx VIP
- 5万吨每年非木纤维漂白浆生产系统方案.doc VIP
- 燃料油安全技术说明书(MSDS).doc VIP
- 食品安全日管控、周排查及月调度记录表 .pdf VIP
- 2023年下半年教资小学《教育教学知识与能力》考试真题(含答案)4403.pdf VIP
- 2024年下半年小学教资科目二真题及答案:教育教学知识与能力.pdf VIP
- 2025年上半年小学教资教育教学知识与能力科目二真题及答案.pdf VIP
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 2025青海公司所属华电(格尔木)能源有限公司面向华电系统内外招聘180人考试备考题库及答案解析.docx VIP
- 2025青海公司所属华电(格尔木)能源有限公司面向华电系统内外招聘180人备考练习试题及答案解析.docx VIP
文档评论(0)