打印
[开发工具]

Keil下多文件打包生成LIB库

[复制链接]
5334|59
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
fengm|  楼主 | 2023-12-13 22:45 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
在项目上有时需要提供程序给客户自己修改一些参数调节效果,但自己又不想提供源码公开时,这时就可以使用keil自带的打包Lib文件功能,操作如下:
1、先打开一个工程项目,如果DRIVER文件下的lcd.c、key.c、24c02.c和IIC.c这四个文件的源码不想给别人看到的话,就将这些文件进行打包成Lib库,如下图1:

图1
2、将除了这四个文件外的其它文件都移除掉,这里可以先备份一份原工程项目,稍后可以将转化后的Lib库直接使用,而不用再将移除掉的文件重新添加,如下图2:

图2
3、点击上方工具栏的“Options for Target...”选项,如下图3的红框:

图3
4、点击“Output”选项,先点击红框1的“Select Folder for Objects”设置打包的Lib库文件保存位置,途径自己设置就行了,然后勾选红框2的“Create Library”(Create Library后面就是保存的位置),点击OK设置完毕,如下图4:

图4
5、进行编译,编译完之后会在刚刚的保存路径生成一个.lib文件,复制该文件,如下图5:

图5
6、在第2步备份的原工程项目可以新建个文件夹存放该复制的.lib文件,然后将刚刚封装成Lib的四个.c文件lcd.c、key.c、24c02.c和IIC.c从文件夹里面删掉,只保留这四个文件的.h文件,因为这里需要从这些.h文件去链接对应的.c文件的函数,所以打包成库的话只能看到.h文件里面的接口函数而看不到源码,红框里就是删减后的DRIVER文件和新增的Lib库文件,如下图6:

图6
7、到这里已经将所有步骤都完成了,接着进行编译,编译通过,如下图7:

图7
注意:这里打包成库的文件不能用函数通过右键“Go To Definition of xxxxx”去跳转到源码上了,只能看到对应.h文件里面的函数名。
这里也可以将一些官方库进行打包封装,因为编译时许多有用到的官方库都会进行编译,这样编译起来会浪费很长时间,所以这里也可以将这些文件进行打包,这样编译工程就不会将这些文件再次编译,这样就可以节省很多时间。

使用特权

评论回复
59
脑洞星球居民| | 2025-4-13 10:52 | 只看该作者
这个方法确实能很好地保护源代码不被泄露,同时还能提供给客户必要的接口进行参数调整

使用特权

评论回复
58
软核硬核| | 2025-4-12 23:47 | 只看该作者
直接在设置里勾选生成库即可。

使用特权

评论回复
57
jdqdan| | 2025-4-5 11:25 | 只看该作者
创建库文件,然后添加所有源文件到该库。

使用特权

评论回复
56
digit0| | 2025-1-3 11:45 | 只看该作者
在Keil环境下,将多个源文件打包生成LIB库,可按以下步骤操作:首先创建项目并添加所有源文件;然后设置项目属性,选择创建库文件;最后编译项目即可生成LIB库。

使用特权

评论回复
55
鹿鼎计| | 2025-1-2 10:42 | 只看该作者
如果你正在为他人提供解决方案,你可以使用这种方法。

使用特权

评论回复
54
星闪动力| | 2024-11-5 11:54 | 只看该作者
只有。,c文件及其对应的。,h文件可以正确打包到lib库中。,

使用特权

评论回复
53
IntelCore| | 2024-11-3 17:34 | 只看该作者
使用lib文件时,不能通过右键单击“Go,Define”直接跳转到源代码。

使用特权

评论回复
52
hmcu666| | 2024-10-8 12:27 | 只看该作者
你可以自己把公共模块打包成库。,

使用特权

评论回复
51
AutoMotor| | 2024-10-6 10:40 | 只看该作者
只有,c,文件和它们对应的,h,文件才能正确的打包到,lib,library中。

使用特权

评论回复
50
未来AI| | 2024-10-5 18:23 | 只看该作者
使用,lib,library时,确保已经将,lib,library文件添加到项目中,否则编译时会提示没有找到库文件。,

使用特权

评论回复
49
jdqdan| | 2024-9-15 13:16 | 只看该作者
只有. c文件及其对应的. h文件才能正确打包到lib库中。

使用特权

评论回复
48
物联万物互联| | 2024-9-15 11:19 | 只看该作者
在keil环境中,为了打包多个源文件以生成一个库文件(lib ),可以遵循以下两个简单的步骤:

使用特权

评论回复
47
V853| | 2024-7-8 12:09 | 只看该作者
使用lib文件时,不能通过右键单击“转到,定义”直接跳转到源代码

使用特权

评论回复
46
LLGTR| | 2024-7-1 22:45 | 只看该作者
如果您正在为其他人提供解决方案,则可以使用此方法。

使用特权

评论回复
45
小小蚂蚁举千斤| | 2024-6-23 14:09 | 只看该作者
调用LIB库中的函数非常适合标准文件

使用特权

评论回复
44
LinkMe| | 2024-6-11 23:25 | 只看该作者
您可以自己将公共模块打包到库中。

使用特权

评论回复
43
yangxiaor520| | 2024-6-9 16:53 | 只看该作者
可以打包成通用库提供服务

使用特权

评论回复
42
朝生| | 2024-6-9 11:32 | 只看该作者
只有 c 文件及其对应的 h 文件才能被正确地打包到 lib 库中。

使用特权

评论回复
41
鹿鼎计| | 2024-6-9 11:00 | 只看该作者
在 keil 环境中,要将多个源文件打包到单个库文件(lib)中,可以遵循以下两个简短步骤:

使用特权

评论回复
40
AIsignel| | 2024-6-8 15:31 | 只看该作者
在使用 lib 库时,请确保已将 lib 库文件添加到项目中,否则在编译时将提示未找到库文件。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

2928

帖子

2

粉丝