在项目上有时需要提供程序给客户自己修改一些参数调节效果,但自己又不想提供源码公开时,这时就可以使用keil自带的打包Lib文件功能,操作如下:

1、先打开一个工程项目,如果DRIVER文件下的lcd.c、key.c、24c02.c和IIC.c这四个文件的源码不想给别人看到的话,就将这些文件进行打包成Lib库

target_link_libraries 添加库 路径_库文件

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

target_link_libraries 添加库 路径_工程项目_02

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

target_link_libraries 添加库 路径_工程项目_03

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

target_link_libraries 添加库 路径_工程项目_04

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

target_link_libraries 添加库 路径_库文件_05

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

target_link_libraries 添加库 路径_库文件_06

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

target_link_libraries 添加库 路径_封装_07

注意:这里打包成库的文件不能用函数通过右键“Go To Definition of xxxxx”去跳转到源码上了,只能看到对应.h文件里面的函数名。

这里也可以将一些官方库进行打包封装,因为编译时许多有用到的官方库都会进行编译,这样编译起来会浪费很长时间,所以这里也可以将这些文件进行打包,这样编译工程就不会将这些文件再次编译,这样就可以节省很多时间。