1.关于制止LIB库文件的几点经验

1. 一个工程如何生成lib文件:

2. 一个生成lib文件的工程可以调用这个工程中不存在的函数,只需要在.h文件中声明这些不存在函数的原型,然后在调用这个lib文件的工程中实现这些函数即可。

3. 由上面一点可得出一个生成lib文件的工程改成生成hex文件或者bin文件那么可能编译错误(找不到未声明函数的原型),但是如果是生成lib的可以编译成功。
 

2.制作LIB的一般步骤(只有一个C文件,不存在调用LIB工程外的函数):

1.将此C文件添加至一个测试工程,生成HEX文件或者BIN文件
2.将此文件内所有函数的功能全部测试通过
3.新建一个工程,只添加此C文件和一些必要的H文件(例如使用的芯片的库文件),再添加一个H文件,此H文件里面将调用此LIB的所有函数、宏、变量做extern声明
4.build工程即可,切记输出选择Create Library。
 

3.如果一个LIB工程里面有多个C文件,且需要调用LIB工程外部的函数时,建议步骤如下:

1.将全部C文件添加至测试工程,生成HEX文件或者BIN文件
2.将所有函数的功能全部测试通过
3.新建一个工程,添加需要的C文件,在第一个H文件内声明LIB工程内使用的函数,第二个H文件内声明原型在工程内部,供工程外部调用的函数,在第三个H文件内声明原型在工程外部,供工程内调用的函数
4.build工程,生成lib文
5.在调用LIB文件的工程中include第二个和第三个H文件,实现第三个H文件内的所有函数,调用第二个H文件内的函数,第一个文件在LIB工程内使用即可,调用LIB文件的工程无需include。

关于C语言中用Keil软件制作Lib库文件的几点经验的更多相关文章

  1. Keil C 里面Lib库文件的生成与调用

    源:Keil C 里面Lib库文件的生成与调用

  2. .h头文件、 .lib库文件、 .dll动态链接库文件之间的关系

    转自.h头文件. .lib库文件. .dll动态链接库文件之间的关系 h头文件作用:声明函数接口 dll动态链接库作用:含有函数的可执行代码 lib库有两种: (1)静态链接库(Static Liba ...

  3. 制作静态库文件(.a文件)

    制作静态库文件(.a文件) 1.创建静态库工程: 在Xcode中new一个新的project,选择IOS下面的Framework&Library,下面有一个Cocoa Touch Static ...

  4. 由动态库文件dll生成lib库文件(手动生成.def文件,然后使用lib命令编译,非常牛),同理可使用dll生成.a库文件

    本文基于OpenBlas的编译和安装,来说明如何从一个dll文件生成lib库文件. 参考OpenBlas的说明“Howto generate import library for MingW”,和Mi ...

  5. STM32软件复位(基于库文件V3.5)

    源:STM32软件复位(基于库文件V3.5) void SoftReset(void) { __set_FAULTMASK(); // 关闭所有中端 NVIC_SystemReset();// 复位 ...

  6. VC中加载LIB库文件的三种方法

    VC中加载LIB库文件的三种方法 在VC中加载LIB文件的三种方法如下: 方法1:LIB文件直接加入到工程文件列表中   在VC中打开File View一页,选中工程名,单击鼠标右键,然后选中&quo ...

  7. 由动态库文件dll生成lib库文件

    本文基于OpenBlas的编译和安装.来说明怎样从一个dll文件生成lib库文件. 參考OpenBlas的说明"Howto generate import library for MingW ...

  8. Keil工程Lib库文件的制作和运用

    最近看了百度手环开源项目,发现所有的算法都被封装成了一个lib文件在keil中调用 也是第一次学习到. 问题引出:为什么要做成lib库? 1.有些方案公司为了将自己写的关键部分源代码不进行公开,但是同 ...

  9. .h头文件 .lib库文件 .dll动态库文件之间的关系

    .h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的. 附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件.如果要完成源代码的编译和链接,有头文件和lib就够 ...

随机推荐

  1. Gstreamer 数据流线程(GstTask / GstTaskPool)分析

    作者:fengcc 原创文章 转载请注明出处 GStreamer 是一个基于流水线的多媒体框架,基于 GObject,以 C 语言写成. 凭借 GStreamer,程序员可以很容易地创建各种多媒体功能 ...

  2. 能发送http请求(get,post)的工具

    能发送http请求(get,post)的工具, 1.  fiddler 前端自己模拟发送请求 2.  其他 链接:https://www.zhihu.com/question/20367546/ans ...

  3. 第三篇:web之前端之JavaScript基础

    前端之JavaScript基础   前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript ...

  4. virtualbox 安装windows系统的一些问题

    今天总结一下,使用virtualbox安装windows系统的一些问题. 安装的是Ghost的系统,正版系统也可以参考. 首先本人的机器原系统是ubuntu 16.04 LTS x64 1.win7或 ...

  5. Bootstrap--全局CSS样式之概览

    (1)HTML5文档类型 Bootstrap 使用到的某些 HTML 元素和 CSS 属性需要将页面设置为 HTML5 文档类型.在项目中的每个页面都要参照下面的格式进行设置. Code<!DO ...

  6. Table显示滚动条

    Table显示滚动条,要先把table放到一个div中,div的长度和宽度要固定,控制overflow属性为scroll <div style="width:700px; height ...

  7. python查看网站的RTT

    import requests time=0.0 jpserver=['jp1.herejump.com','jp1.herejump.com','jp1.herejump.com'] usserve ...

  8. 国内最简单的短视频SDK

    最近阿里百川和趣拍一起合作推出了一个短视频SDK.之前很多厂商可能都是用的Vitamio的短视频SDK.之后我考察过,也做过一些调查,发现Vitamio真的奇贵无比,屌丝公司根本用不起,阿里和趣拍这下 ...

  9. sql server split函数

    --创建分割函数CREATE FUNCTION dbo.Split(@String varchar(8000),@Delimiter char(1))returns @temptable TABLE ...

  10. Access的转义字符

    Access中数据库转义字符规则: 插入.更新.=匹配 数据时,文本类型如用''括起来,中间可以有 ",*,%,[,],/,/,?,(,),{,}的任意组合,如要插入一个',需写''并在整个 ...