你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

在KEIL realview MDK下为单一C文件生成.LIB文件

[复制链接]
qrsgcslqg 发布时间:2015-1-11 10:28

看大多数说的都是简单地将整个工程转换成.LIB,在Project->Options for Target->Output下,选择Create Library,就可以了。


% l9 Y) u2 P1 n- t: w* b

不过这样生成的lib文件巨大,我现在编译的工程最后生成的lib有2.6MB。


; \- @4 D# e3 P2 w8 g- \

后来还是从KEIL官网英文资料中找到灵感(http://www.keil.com/support/docs/2610.htm):

1、右键点击工程,假设为a,选Add Group,假设为b,再将想生成lib的文件加入b group,假设文件是cc.c,必须要有cc.h。

8 R5 \, e7 w) t  H  E9 z; r9 j3 A6 b

2、右键依次点击其他的group,按KEIL官网资料所说的,将Options for Group->Properties下的Include in Target Build前的对勾去掉,这样生成LIB时就不会被编译了


6 m, @% n8 ]; i  k( m

3、Project->Options for Target->Output下,选择Create Library,改输出文件名为cc,点OK


1 v, J" |6 q4 V1 X: C$ y. e- V; A1 O

4、编译,这样就能在工程文件夹下的OBJ找到生成的cc.lib了,我在里面只放了一个函数,大小为80K。

$ K! ^7 U4 r/ K" V

5、调用也要注意,将cc.lib拷贝到source文件夹下,将其添加到main group中,并删掉之前的cc.c,要使用cc.lib时,必须要保证c文件中include “cc.h”。当然在之前写cc.c中也要include “cc.h”,并且cc.h中声明了cc.c中的函数才行。最后要将刚才去掉对勾的部分都还原,编译,OK!

1 f, V* p+ |1 m. C1 E! S! i

参考网址:

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

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


6 ^' r5 l0 F8 ?# P

µVISION: CREATE LIBRARY AND APPLICATION IN ONE PROJECT

http://www.keil.com/support/docs/2610.htm


7 s- ^; A. w1 ^$ k6 L

Keil的lib生成个人总结

http://blog.21ic.com/user1/3742/archives/2010/70337.html


# S% e  K# g8 _8 Q% a1 q

Keil的lib库函数的封装

http://blog.csdn.net/CaesarZou/article/details/5533934


5 [+ u  W8 O! f8 w$ ~5 s, p; P  J! U  }

Keil中如何使用自己生成的LIB库

http://blog.csdn.net/wgq2633/article/details/2897752

: K; Y+ u2 ^8 l9 v# a

Keil 生成Lib 调用Lib

http://dufanfance.blog.163.com/blog/static/144959439201151414974/

收藏 1 评论7 发布时间:2015-1-11 10:28

举报

7个回答
qrsgcslqg 回答时间:2015-1-11 10:29:01
网上看到的,先保存一下
aderson 回答时间:2015-1-11 13:57:58
弱弱的问一下,生成的LIB有什么 用
党国特派员 回答时间:2015-1-11 15:29:23
adersonl 发表于 2015-1-11 13:57
, D/ x7 m* H2 g; F+ R' E弱弱的问一下,生成的LIB有什么 用
4 E4 @+ x' @0 U; D5 [0 W% J( N" g
333.png ' R$ Z: R! ?: @4 L7 C! S
aderson 回答时间:2015-1-11 21:45:11

6 a) K$ N4 t7 i! Z2 F, Z$ v代码不能直接用吗?
党国特派员 回答时间:2015-1-11 22:11:49
adersonl 发表于 2015-1-11 21:450 R) r. N* y7 j5 b0 ]) b/ M( o, ~
代码不能直接用吗?
$ ?4 P- x  j1 V3 C* x
当然可以,如果工程很大的话,都用源码去编译,那可能会很费时间了。
qianfan 回答时间:2015-1-13 11:32:54
挺好用的,当时我也用过。当然,加快编译速度只是其中的一个方面,更重要的是,有时候你的代码不便于直接使用C/C++源文件进行交流,为了保密
qrsgcslqg 回答时间:2015-1-13 11:39:45
QianFan 发表于 2015-1-13 11:32/ x- b1 E4 T( e. i
挺好用的,当时我也用过。当然,加快编译速度只是其中的一个方面,更重要的是,有时候你的代码不便于直接使 ...

7 B4 l& y/ s1 Q( s1 _4 r. f: j5 D是的,用着方便还能将自己的关键代码或算法隐藏

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版