当前位置:网站首页>keil和IAR中lib库文件的生成和使用
keil和IAR中lib库文件的生成和使用
2022-07-28 10:32:00 【tutu-hu】
一.lib静态库的使用具有一下优点:
1.封装源代码,对外不开放,提高保密性。
2.将标准功能函数封装成库,提高代码的复用性。
3.使用库开发,简化开发流程,提高开发效率。
4.系统调用库函数,提高执行效率。
二.keil环境下Lib库的生成
1.修改编译输出方式选择为Create Library,也就是输出为创建lib库,并在2处输入库的名称。
2.选中需要编译为库的文件,也就是将不需要编译的文件或文件夹排除编译。
首先选中不需要编译的文件或文件夹右击,选择options…选项,如下所示:
然后将include in Target Build 选项框不选中,如下所示:
3.选择之后系统工程文件夹如下所示,可以看出只剩hututu_test.c文件参与编译。
4.重新编译整个工程后输出如下:
5.编译完成后可在选中输出文件夹中生成.lib文件
至此lib库生成成功。
三.keil环境下Lib库的调用
lib库生成之后需要调用该库,以替代原有的c文件,具体步骤如下:
1.首先将系统编译输出选项更改为可执行文件,如下所示:
2.将lib文件添加到系统工程中
3.将之前参与编译的c文件从系统中移除(因为库文件替代了这部分代码的功能)
4.重新编译工程,结果如下,可以看出库文件使用生效。替代了原来部分c文件的作用。
至此,库文件的调用测试结束。
四.IAR环境下Lib库的生成
1.修改编译输出方式选择为Output---->Library,也就是输出为创建lib库,并在2处选择库保存路径并输入库的名称。

2.选中需要编译为库的文件,也就是将不需要编译的文件或文件夹排除编译。
首先选中不需要编译的文件或文件夹右击,选择options…选项,然后勾选Exclude from build,也就是排除编译,最后就剩下hututu_test.c文件参与编译,如下所示:
3.重新编译整个工程后结果以及生成的lib文件如下所示:
至此,整个工程编译生成Lib文件完成。
五.IAR环境下Lib库的调用
lib库生成之后需要调用该库,以替代原有的c文件,具体步骤如下:
1.首先将系统编译输出选项更改为可执行文件,如下所示:
2.将lib文件添加到系统工程中
3.将之前参与编译的c文件从系统中移除(因为库文件替代了这部分代码的功能)
4.重新编译工程,结果如下,可以看出库文件使用生效。替代了原来部分c文件的作用。

至此,库文件的调用测试结束。
六.总结
keil和IAR的lib静态库的生成和调用基本是一致的,静态库的使用可以大大精简项目工程的复杂度。静态库的生成只是对源文件(.c文件)的封装,并不设计到.h头文件,因此lib库的使用需配合头文件(只是用lib替代了诸多.c文件),在我们封装好lib库要给别人使用时,只需要把lib库和.h文件发给别人即可,方便高效。
边栏推荐
- 图片滑动特效
- 剑指 Offer 09. 用两个栈实现队列
- Attention 注意力机制流程框图
- Crm+ zero code: easily realize enterprise informatization
- Yan reports an error: exception message: /bin/bash: line 0: fg: no job control
- Two years of crud, two graduates, two months of preparation for the interview with ALI, and fortunately won the offer grading p6
- Learn how to do e-commerce data analysis (with operation analysis index framework)
- Nodejs: set up the express service, set up the session and realize the exit operation
- Nodejs:mongodb 简单模糊+分页查询实例
- Arduino Basics
猜你喜欢

GKConstantNoiseSource

学会这些分析方法及模型,遇到问题不再没思路

GKCylindersNoiseSource

Attention attention mechanism flow chart

ICML 2022 | graph represents the structure aware transformer model of learning

Blue Bridge Cup embedded Hal library systick

Why is low code (apaas) popular again recently?

Aike AI frontier promotion (7.28)

Learn how to do e-commerce data analysis (with operation analysis index framework)

Batch Normlization
随机推荐
蓝桥杯嵌入式-HAL库-LCD
GKSphereObstacle
JSON初步理解
GKRandomSource
nodejs:搭建express 服务,设置session以及实现退出操作
nodemcu之开发环境配置
ICML 2022 | graph represents the structure aware transformer model of learning
图片滑动特效
Product side data analysis thinking
分体式测斜探头安装要点及注意事项
GKSpheresNoiseSource
Array related knowledge points
GKARC4RandomSource
剑指 Offer 30. 包含min函数的栈
Yan reports an error: exception message: /bin/bash: line 0: fg: no job control
乱打日志的男孩运气怎么样我不知道,加班肯定很多
samba学习
Blue Bridge Cup embedded Hal library systick
JSON preliminary understanding
10_ue4进阶_添加倒地和施法动作