Keil工程Lib库文件的制作和运用
2024-08-22 09:10:10
最近看了百度手环开源项目,发现所有的算法都被封装成了一个lib文件在keil中调用 也是第一次学习到。
问题引出:为什么要做成lib库?
1、有些方案公司为了将自己写的关键部分源代码不进行公开,但是同时库文件又需要让别人能够正常调用,那封装成lib的格式就是一个好方法。
2、编译某些工程文件时非常耗时,像UCGUI和ST官方的库时,由于文件众多,编译一次可能得1两分钟,这时可以打包成库,这时编译工程时就不会再次编译库的文件,节省不少的时间。
唯一一点不好的是:不能用右键go to Definition 'XXX'来直接找到源文件定义了。但是一般别人都是测试好就封装成lib的
制作方法:以UCGUI为例
第一步:打开一个测试通过的工程。(如果本来要打包的库文件里面的代码有错的话,打包成库后也是不能用的,这步是关键)
测试没有问题后将不需要的部分删除,后如下图所示
第二步:打开KEIL MDK->Project->Option for target...->Output,选 中Create Executable:....选项。
第三步:重新编译,即可在原本生成Hex文件的目录下找到*.lib文件。
打开原工程,只需将原来的.c文件移除,添加进该.lib文件即可使用(程序调用要包含lib文件中c文件的所有头文件)。
特别注意的是:Lib的文件要分的细一点,没有调用关系的两个函数不要放到同一个C文件中. 没有调用关系的最好是一个函数单独放在一个.c文件中.这是为了避免在keil中应用程序调用lib库里出现告警.
最新文章
- 体验Visual Studio 2015 Windows Forms应用程序开发与维护
- java 继承(下)
- ios swift 2 新的OptionSetType使用方法
- 一个IP能建立的最大连接数是多少?
- linux线程的实现【转】
- Oracle 一些操作
- 【Swift】—— 中国课程
- composer 的快速安装
- 【openstack N版】——走进云计算
- C# int数据类型呵呵
- 关于always块内for循环的执行方式
- JLOI2015 DAY1 简要题解
- xgboost使用调参
- 使用git 上传项目到gitee/github
- js 乘除法小数问题
- hihoCoder #1183 : 连通性一·割边与割点(求割边与各点模板)
- 【运维理论】RAID级别简介
- 算法之经典排序-冒泡排序(bubble sort)
- HTTP Client Performance Improvements
- 2015-08-19(i++与++i的思考)
热门文章
- BugkuCTF--域名解析(windows)
- python基础之函数当中的装饰器
- Codeforces 1178B. WOW Factor
- hadoop批量命令脚本xcall.sh及jps找不到命令解决
- django-Auth模块(详细介绍)
- luogu P2605 [ZJOI2010]基站选址
- Nginx配置,请求到tomcat中
- python 利用已有Ner模型进行数据清洗合并
- git ignore 如何忽略已经提交的文件修改
- v-bind:value=";diy"; 添加到 <;input type=";button"; />; 中可以,添加到<;button />;中不可以,diy是data中的数据