KeilIAR生成库及库的说明与使用
一、写在前面
库,对于编程的人来说,都应该知道。但有很多初学者,及已经工作的朋友对库的理解还处于书本概念阶段,也就是没有生成和使用过库。
其实,还有很多朋友不知道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等开发场合。
四、最后
微信搜索“EmbeddDeveloper” 或者扫描下面二维码、关注,查看更多精彩内容。
KeilIAR生成库及库的说明与使用相关推荐
- Ubuntu下makefile及gcc生成静态库动态库的简单使用举例
环境:Ubuntu-13.10 32位(虚拟机).gcc4.8.1 首先创建一个test_makefile_gcc文件夹,此test_makefile_gcc文件夹下包括:src文件夹用于存放源文件 ...
- windows7下,Java中利用JNI调用c++生成的动态库的使用步骤
1.从http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html下载jdk-7u2-wi ...
- 鸿蒙so系统,鸿蒙手机版JNI实战(JNI开发、SO库生成、SO库使用)
鸿蒙JNI开发现状 现阶段,不仅鸿蒙JNI相关的开发资料较少,而且Phone相关的JNI开发资料几乎没有,这对于新入行的鸿蒙开发者们来说,非常不友好. 也可能会给Android工程(使用了SO库的工程 ...
- 「Python」python调用单个C++文件生成的动态库(.so)Part I
环境说明 系统:Ubuntu 18.04 python:python 2.7.17 额外环境 上面的环境是普通测试,但是最终标题中的任务我需要在docker中执行,很多块内容我也不太懂,所以一步一步测 ...
- 【Qt】Qt6调用Visual Studio2019生成的动态库详解
00. 目录 文章目录 00. 目录 01. 开发环境 02. Visual Studio 2019生成动态库 03. 新建Qt项目 04. 编写测试程序 05. 其它参考 06. 附录 01. 开发 ...
- linux库引入之动态库静态库(生成和使用)
库: 库是一种可执行代码的二进制形式,可以被操作系统载入内存执行.就是将源代码转化为二进制格式的源代码,相当于进行了加密,别人可以使用库,但是看不到库中的内容. 如何使用 用户需要同时具有头文件和库. ...
- Linux-(C/C++)生成并使用静态库/动态库
静态库/动态库概要 在Windows下静态库的后缀为:.lib.动态库后缀为:.dll:而在Linux下静态库的后缀为:.a.动态库的后缀为:.so. 那么什么是静态库呢? 首先我们来看看程序编译的大 ...
- Golang生成C动态库.so和静态库.a
Go 生成C动态库.so和静态库.a 源代码 package mainimport "C" import "fmt"//export hello func he ...
- vue怎么自己创建组件并引用_如何在组件库项目内直接引用vue-cli生成的组件库文件...
感谢大家帮忙, 我第一次用vue-cli制作组件库,使用的命令是: vue-cli-service build --target lib --name vpui ./src/components/in ...
- html转换成pdf工具-wkhtmltopdf、Python生成PDF(pdfkit库)
文章目录 一.html转换成pdf工具-wkhtmltopdf 1. 什么是wkhtmltopdf 2. 如何使用它? 3. 常见问题 error while loading shared libra ...
最新文章
- java配置中心开源项目_配置中心搭建(spring-cloud-config-server)
- Hash join 和nested loop
- 中国人工智能计划,我来说几句
- 编写程序python、实现将矩阵顺时针旋转90°_Java实现矩阵顺时针旋转90度的示例...
- python调用c++返回带成员指针的类指针
- python怎么检查错误-错误处理
- Ubuntu升级之后The disk drive for / is not ready yet or not present的解决方法
- 华人包揽CVPR 2019最佳论文,李飞飞ImageNet成就经典
- 彻底卸载SqlServer2008R2
- python插入排序_python 插入排序,选择排序
- JM与h264标准中的关键字说明
- sql中having、group by用法及常用聚合函数
- python hadoop_让python在hadoop上跑起来
- oschina压缩工具
- 蠕虫Sexy View短信攻击诺基亚3250等手机
- 【Scratch】青少年蓝桥杯_每日一题_10.09_小猫奔跑
- C# 绘制矩形方框读写内存类 cs1.6人物透视例子
- python读取excel文件数据并且画折线图(入门级)
- matlab 最优资产组合,基于MATLAB的最优投资组合问题.pdf
- VMWare 导出vmdk并转为qcow2格式