0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Keil& ; IAR生成库及库的说明与使用

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-20 14:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

写在前面 Ⅰ

库,对于编程的人来说,都应该知道。但有很多初学者,及已经工作的朋友对库的理解还处于书本概念阶段,也就是没有生成和使用过库。

其实,还有很多朋友不知道printf打印函数是怎么回事,我们在代码中调用printf函数打印数据时,已经调用了标准的“微库”,这里可以参看我的文章:关于printf和scanf在开发STM32中的配置和应用

什么情况下要生成库?

1.代码模块化定型。也就是说模块代码的功能在经过无数次验证,并无误后,方便团队的协同开发,这个时候可以将模块代码生成库。

2.提供SDK给客户开发。这里一般是指源代码对客户不具有公开性的原因,包括某些特有算法、实现特有功能的具体过程等。

生成库的原则?

简单来说就是使代码结构化、模块化、源码不具公开性等。要求代码高内聚、低耦合

Keil、IAR如何生成库? Ⅱ

代码工程生成库的过程只需要对工程进行配置即可,这里再简单讲一下过程,其实在我“系列教程”中有相关内容。

Keil:Project -> Options for Target -> Output 勾选上“Create Library”即可。

IAR:Project -> Options -> General Options -> Output 勾选上“Library”即可。

静态库和动态库的区别? Ⅲ

上面Keil生成的库是以“.Lib”为后缀的文件,IAR是以“.a”为后缀的文件,你们知道他们是静态库还是动态库吗?

答案是:二者都是静态库。

为什么都是静态库呢? 先看一下静态库和动态库的区别就会知道。

简单的来说二者的区别:

静态库:就是在编译的时候直接将需要的代码连接进可执行程序中去;

动态库:就是在需要调用其中的函数时,根据函数映射表找到该函数然后调入堆栈执行。

从上面的描述可以知道,静态库是我们MCU开发者常用的一种,而动态库常用于Linux、Windows等开发场合。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IAR
    IAR
    +关注

    关注

    5

    文章

    400

    浏览量

    38339
  • 静态库
    +关注

    关注

    0

    文章

    21

    浏览量

    7730
  • keil
    +关注

    关注

    69

    文章

    1224

    浏览量

    171809
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    罗德与施瓦茨宣布推出新频段 R&S ZNB3000 矢量网络分析仪,频率高达 54 GHz

    R&SZNB3000以业界领先的测量速度、出色的扩展能力及一流射频性能,为中端矢量网络分析仪市场树立了新标杆。随着高频型号的加入,R&SZNB3000将覆盖更广泛的应用场景。罗德与施
    的头像 发表于 12-04 17:04 183次阅读
    罗德与施瓦茨宣布推出新频段 R&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;S ZNB3000 矢量网络分析仪,频率高达 54 GHz

    rt-thread studio debug生成了elf &amp;amp; map,为什么不生成反汇编呢?

    开发中crash后dump出了现场,需要通过反汇编文件确定crash的lr &amp;amp; pc,大部分使用rtthread studio的环境是windows,在windows下倒反汇编文件
    发表于 09-18 07:13

    求助,关于NanoEdge AI Studio生成交叉编译器版本疑问求解

    20231009\", 那么问题来了,怎么在NanoEdge AI Studio设定交叉编译器呢,比如设置为armcc、armclang、iccram,因为我需要将加到keil或者iar工程里面。 看样子这个软件
    发表于 08-08 07:25

    AD封装安装教程

    电子发烧友网站提供《AD封装安装教程.pdf》资料免费下载
    发表于 06-19 15:35 3次下载

    新知|Verizon与AT&amp;amp;amp;T也可以手机直接连接卫星了

    近日,Verizon与AT&amp;T宣布,手机直连卫星方面取得重要进展,使用普通手机实现了通过卫星的视频通话。很显然,Verizon与AT&amp;T的这一举措是针对此前T-Mobile
    的头像 发表于 06-19 07:07 893次阅读
    新知|Verizon与AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T也可以手机直接连接卫星了

    rt-thread studio debug生成了elf &amp;amp;amp; map,为什么不生成反汇编?

    开发中crash后dump出了现场,需要通过反汇编文件确定crash的lr &amp;amp; pc,大部分使用rtthread studio的环境是windows,在windows下倒反汇编文件
    发表于 06-11 06:42

    Keil MDK到IAR EWARM:通过工程迁移实现项目资产的更好管理

    对于需要统一开发环境或涉及多核架构(如Cortex-A/R)的项目,越来越多的用户选择从Keil MDK迁移到IAR EWARM。这就会面临着需要将之前的Keil MDK工程迁移到IAR
    的头像 发表于 05-08 09:03 998次阅读
    从<b class='flag-5'>Keil</b> MDK到<b class='flag-5'>IAR</b> EWARM:通过工程迁移实现项目资产的更好管理

    CubeMX创建STM32F1 FreeRTOS选择新版1.8.6后工程出错是怎么回事?

    创建出来的工程首先提示缺少文件 freertos_mpool.h , 然后将次文件从CubeMX的中 手动拷贝过来后接着又提示报错 *** Using Compiler &amp;#039
    发表于 03-14 06:31

    IAR无法跳转定义,系统文件文件名后有[RO]是怎么回事?

    IAR无法跳转定义,系统文件文件名后有[RO]
    发表于 03-10 07:36

    双模载波芯片CN8513&amp;amp;amp;CN8514在智能家居中的创新应用

    双模载波芯片CN8513&amp;CN8514在智能家居中的创新应用
    的头像 发表于 02-10 09:43 965次阅读
    双模载波芯片CN8513&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;CN8514在智能家居中的创新应用

    HPLC+HRF双模载波芯片CN8513&amp;amp;amp;CN8514应用于智能楼宇

    HPLC+HRF双模载波芯片CN8513&amp;CN8514应用于智能楼宇
    的头像 发表于 01-09 10:01 1179次阅读
    HPLC+HRF双模载波芯片CN8513&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;CN8514应用于智能楼宇

    云数据是哪种数据类型?

    云数据是一种部署在虚拟计算环境中的数据,它融合了云计算的弹性和可扩展性,为用户提供高效、灵活的数据服务。云数据主要分为两大类:关系型数据
    的头像 发表于 01-07 10:22 804次阅读

    HPLC+HRF双模载波芯片CN8513&amp;amp;amp;CN8514用于智能抄表系统

    HPLC+HRF双模载波芯片CN8513&amp;CN8514用于智能抄表系统
    的头像 发表于 01-03 10:04 2389次阅读
    HPLC+HRF双模载波芯片CN8513&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;CN8514用于智能抄表系统

    QT调用动态

    \", \"动态没装载!原因是动态OUR_IDR.dll没放在生成exe文件相同目录下!\"); return; } idr_beep myidr_beep
    发表于 12-28 16:19

    如何判断产品需不需要做AT&amp;amp;amp;T认证?AT&amp;amp;amp;T测试内容和要求分享

    随着经济全球化的发展,国内越来越多产品厂商选择将自家产品出口到北美市场,而这时候各位厂商都会面临产品需不需要做AT&amp;T的问题。今天英利检测针对这一问题整理了一些关于AT&amp;T认证中
    的头像 发表于 12-23 17:46 1020次阅读
    如何判断产品需不需要做AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T认证?AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T测试内容和要求分享