LIB库有什么用,一个简单的例子就是Silicon Labs为C8051F单片机USB提供的USBXpress LIB库了,如USB发送数据、接收数据等,都是通用性很强的函数,但因为保密的原因,这个函数是怎么写的,用户是不知道的,只提供接口的API函数,只要调用这些函数即可完成相应功能。

  下面以自己开发的NOKIA5110液晶的驱动程序演示一下LIB库德生成与调用。

  target里面”Options for Target ’Target 1’”里面的output选择create library

(这里可以没有main主函数和一些管脚的定义等,只是NOKIA5110驱动函数)。

  点击Rebuild all the target files,就生成.lib文件。

把上面的工程生成的.LIB文件放入新的文件夹里,在这个文件夹编写一个调用LIB库的程序。把.LIB文件添加到工程里面去,在工程里的H头文件里对NOKIA5110.LIB里的函数进行声明,这样主函数就能调用.LIB里的NOKIA5110的驱动函数了。

  LIB库文件生成调用演示程序:http://space.ednchina.com/Upload/2010/4/19/a8cfdeaf-c1e1-4b2f-8d66-fb3fbc02504c.rar

  BTW:在Keil C中调用USBXpress的函数也是上面的办法,但如果编译器用的Silicon Laboratories IDE的时候要注意添加.LIB库德步骤就不一样了。

  Silicon labs的这个IDE其实也就是一个壳,编译程序之前要设置好调用keil编译核心的路径。

  Project——Tool Chain Integration

Silicon Laboratories IDE LIB库文件的调用

1. Project -> Target Build Configuration -> Customize -> Files to Link -> Add External OBJ

2.在 'List files of type' drop-down box from 'Object Files' 选择'All files'类型,. 选择要添加的LIB文件。
3. 点击 OK.

本文参考:

1)  How to use USB_Clock_Start() in firmware

http://www.cygnal.org/ubb/Forum9/HTML/000844.html

2) Keil C 里面Lib库文件的生成与调用

http://blog.ednchina.com/Alexi2008/224810/message.aspx

3) 把源代码给人家?源代码隐藏高招--把关键的程序用Lib包含进来!

http://www.dzsc.com/dzbbs/20050405/2007651925293610.html

Keil中LIB库的作用、生成与调用的更多相关文章

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

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

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

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

  3. iOS中静态库-.a文件生成和使用

    最近在使用使用一个网上的Demo的时候. 出现另一令人烦恼的问题 . 就是它里面有嵌套的工程. 如下图所示. 工程里面还嵌套有一个工程. 真的是让人煞费苦心 …其实这个问题看起来并不是很难, 如果是一 ...

  4. C/C++ 动态库so的生成与调用

    1. Linux-(C/C++)动态链接库生成以及使用(libxxx.so) 2. C++文件如何在linux下生成动态库So,以及如何使用这个动态库 3. c++ 发布动态.so 简记1. 编译生成 ...

  5. 在keil中使用Astyle格式化你的代码的方法

    一个好的程序,不仅要有好的算法,同时也需要有良好的书写风格.写出好的算法不容易,但是好的代码风格却并不困难.提到格式化代码,Astyle是一个不能错过的工具,它可以方便的将程序代码格式化成自己想要的样 ...

  6. keil中使用Astyle格式化你的代码的方法2篇合

    关于Astyle Astyle 的全称是Artistic Style的简称,是一个开源的源代码格式化工具,可以对C,C++,C#以及Java等编程语言的源代码进行缩进.格式化.美化.Home Page ...

  7. Keil的lib生成个人总结

    1. 生成lib 的工程可以没有main函数,可以只有一个.c文件,一个.c文件中可以只有一个函数 2. 需要在lib工程中建立一个.h文件, 必须用extern声明各全局变量和函数. 3. 调用li ...

  8. QT 编译遇到重定义;不同的基类型&在QT中使用C++ lib库

    最近在使用osg和qt开发,在集成osg时候因为我使用的qt版本为非opengl的版本,导致qt自己封了一遍opengl的一些基类变量如double 这时候就会跟osg中声明的opengl的类型冲突, ...

  9. 在VS中添加lib库的三种方法

    注意: 1.每种方法也要复制相应的DLL文件到相应目录,或者设定DLL目录的位置,具体方法为:"Properties" -> "Configuration Prop ...

随机推荐

  1. HDU-1176(基础方程DP)

    Problem Description 都 说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉, 就掉落在他 ...

  2. nova-network

    nova network-create demo-net --bridge br100 --multi-host T --fixed-range-v4 192.168.3.0/26 192.168.3 ...

  3. JS(六)

    没有视频看了,心里有点慌啊,像这种每天都会灌输很多知识的学习方式,我觉得提前预习真的是有奇效,不然不容易跟上老师的思维. 1.发送验证码:简单 <!DOCTYPE html> <ht ...

  4. jquery 让指定导航隐藏

    $(function(){ var aLink=$('.nav-content .nav li a'); // 选中所有a var aText=['星网服务','在线搭配','星网学院','推客联盟' ...

  5. Qt的内存管理

    在QT的程序中经常会看到只有new而不delete的情况,其实是因为QT有一套回收内存的机制,主要的规则如下: 1.所有继承自QOBJECT类的类,如果在new的时候指定了父亲,那么它的清理时在父亲被 ...

  6. 【实验 1-2】编写一个简单的 UDP 服务器和 UDPP 客户端程序。程序均为控制台程序窗口。

    1.服务器 #include<winsock2.h> //包含头文件#include<stdio.h>#include<windows.h>#pragma comm ...

  7. 导航条上UIBarButtonItem的更改方法(使用initWithCustomView:btn)

    UINavigationController *nav = [[[UINavigationController alloc] initWithRootViewController:self.newMe ...

  8. [React] Extracting Private React Components

    we leverage private components to break our render function into more manageable pieces without leak ...

  9. Windows server 2008系统下FTP服务器的安装

    一.在 Windows 服务器上安装 FTP 服务 1. 在"开始"菜单上,单击"管理工具",然后单击"服务器管理器". 2. 在" ...

  10. 部署hibernate框架项目时出现问题:The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files.

    基本情况: (这些其实关系不大)我是直接impor导入HibernateDemo项目到eclipse中的,该项目的hibernate版本是3.6.7.Final版,使用了Hibernate Tools ...