标题: keil懒人有懒的一套之生成自己的函数库—LIB文件 [打印本页]

作者: adel    时间: 2019-3-6 00:50
标题: keil懒人有懒的一套之生成自己的函数库—LIB文件
本帖最后由 adel 于 2019-3-6 21:24 编辑

就为了下载另一个网友的附带资料,我也是拼了,没办法,穷嘛,没钱充会员,只能继续发帖子来维持黑币。虽然说发帖子是另有企图,但帖子的质量是绝对凭良心的。希望以后有哪位读者有缘进来看了,请勿急躁,认真看完。也别忘了评论区留言。
     好,进入话题,我前面一个贴子里也讲过我的不幸经历,我的win10安装的keil4 软件生成的库文件调用的时候出错,查出来原因;“通过低版本软件生成库文件,keil不允许这种个行为”然后我就想到那我用高版本生成会不会允许我呢,好,有了这种个想法,固执的我高了半天,下下了新版本软件(keil526),即keil5.
         好,重点来了,生成库文件需要有.c文件和一个.h文件,注意.c文件可以不只是一个。为什么要提这个呢,我之前被这个问题困惑了很多。如果.c文件里包含两个以上的子函数的话,生成库函数后调用时如果只调用其中一个,会有定义的函数未调用警告,虽说警告可以忽略但是,库函数调用时编译器会调用库文件的.c文件里的所有函数,这样一来未调用的函数白白占用了内存空间,要知道单片机内存空间是很宝贵的,再说了老出现警告,心里也挺难受的,就像是不小心吃进去了个苍蝇似的,尤其是像我这样强迫症患者。那么具体怎么操作的呢,请看图示教程。

1.png (145.59 KB, 下载次数: 70)

1.png

2.png (146.96 KB, 下载次数: 65)

2.png

3.png (71.1 KB, 下载次数: 68)

3.png

4.png (134.75 KB, 下载次数: 65)

4.png

作者: 幻作明月    时间: 2019-3-6 06:50
老哥,想问下,这个库文件lib的生成不能使用keil4是吗。。具体调用库的时候,需要包含哪些文件。。有些理不清
作者: 紫色的云    时间: 2019-3-6 08:52
谢谢分享,学习了
作者: whitehead    时间: 2019-3-6 10:17
围观围观,好资料,51黑有你更精彩!!!
作者: 正规007    时间: 2019-3-6 11:06
这真不是懒人,这是思维开拓,是最具创新的标杆!
作者: adel    时间: 2019-3-6 20:31
幻作明月 发表于 2019-3-6 06:50
老哥,想问下,这个库文件lib的生成不能使用keil4是吗。。具体调用库的时候,需要包含哪些文件。。有些理不 ...

我说的还不够清楚吗?,用keil4生成的库文件调用的时候会出错,下载最新版本,我用的是keil5,调用时需要把头文件.h和生成的.LIB文件复制到调用库函数的工程目录下,然后add进入到工程中,最后编译。
作者: adel    时间: 2019-3-6 21:07
幻作明月 发表于 2019-3-6 06:50
老哥,想问下,这个库文件lib的生成不能使用keil4是吗。。具体调用库的时候,需要包含哪些文件。。有些理不 ...

通俗的讲就是,若生成库文件的时候建的工程为a,调用库文件的时候建的工程为b。(a,b最好不要放在同一个文件夹中),打开a所在的文件夹,找到.h和.LIB文件,复制,放到b所在文件夹中,打开b,把刚复制过来的.h和.LIB文件add(添加)进来,然后再#include“????.h”(库文件名称)。
作者: 1984528951    时间: 2019-3-7 11:08
涨知识了,多谢大佬分享
作者: k2866    时间: 2019-3-8 00:09
这个真的很好!长知识了!
作者: hhh402    时间: 2020-2-28 19:38
实测,用keil4生成的库文件也可以使用。没有提示错误。很好用,谢谢楼主。补充一下:模块化是一个c文件对应一个h文件,库文件是一个h文件,多个c文件,这个总的h文件就是多个h文件的合并(相同部分保留一份,不同部分全部保留),c文件中包含的原来h文件改成总的h文件。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1