本文目标:基于keil下的多文件夹打包生成LIB库的操作步骤
按照本文的描述,应该可以跑通实验并举一反三。
先决条件:装有编译和集成的开发环境,比如:Keil uVision5、STM32CubeMX
使用外设:无
前言
在一些情况中,刚踏入新公司接触到新工程时,公司的一些熟手不太方面展示源码,会在工程中添加lib的文件,这些打包的lib库文件中,或者是针对性优化的代码,或者是屎山代码,或者是量产打包的代码,或者是基于保密之类的留一手,或者是祖传代码,或者是别的什么缘由,总之在给定的工程中是能用的,就是看不到对应的源码,这个lib库怎么来的,今天就以一个工程进行展示。
实验
假设你拥有一个如下的工程,其中框起来的是你辛苦写的代码,你需要将他们打包成一个lib库文件,接下来是操作步骤。

步骤1
备份一下工程,重新打开,将除了框起来的代码保留,移除所有的文件,如下图:

步骤2
点击上方工具栏的"Options for Target..."选项,如下图所圈的部分:

步骤3
点击"Output"选项,先点击框的"Select Folder for Objects"设置一下打包的Lib库文件位置,然后勾选框"Create Library"(选择一个位置进行保存),点击OK设置完毕,如下图:

步骤4
进行编译,编译成功之后会生成对应的lib文件的,按照对应的路径找到生成的.lib文件。


步骤5
打开备份的工程,将这个对应lib文件放入工程中进行编译,移除掉备份工程中的源码,现在的工程目录如下:

进行编译,编译是可以通过的

故意将使用到函数的头文件进行屏蔽,发现编译报错,说明头文件里面声明的函数可以进行使用

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

这个打包lib库的方法可以将一些官方库进行打包封装,因为编译时许多有用到的官方库都会进行编译,这样编译起来会浪费很长时间,所以这里也可以将这些文件进行打包,这样编译工程就不会将这些文件再次编译,可以节省时间,利就是节约时间,弊是没源码的实现细节。
本文完!!!