用keil封装LIB教程
本帖最后由 刘鑫-15电子 于 2017-5-24 23:43 编辑之前强哥叫我把我们写的车载的源码进行一个封装,然后发给客户,在保证客户能够进行简单的应用型修改的同时又能保证我们的核心代码不被剽窃,现在最简单的方式就是把我们的核心代码进行封装,然后留出接口来供客户调用。当然,这种做法还有一个很好的地方就是,我们在做程序移植的时候,可以更加方便的给人应用。但是,对于实验室的各位来说,没有必要把自己的源代码藏得深深的,大家互相学习才能取得进步,实验室也能够把写得好的程序一代一代传承下去,在此,再次致敬无私的张进科学长和焦鹏辉学长。
下面我来说一下怎么用keil来进行LIB的封装。
首先,我以LED的程序为例,把LED.c进行一个封装。
这是一个流水灯程序,现在我们要把LED.c封装起来
首先,为方便管理,我们在根目录创建一个文件夹,我喜欢叫“DRIVE”.你们随意,反正要看起来要专业一点。
然后回到我们的工程界面。创建一个新的group,重命名“LED_DRIVE”
接下来,我们要正式进行封装了。为了实现单独的LED.C的封装而不牵扯到其他c文件,我们需要做一个简单的操作。右击其他的不用封装的group:options for group...->properties
取消include in build 的√,使其分组的代码不被编译。(之后要手动还原)
最后每一个不被编译的group会出现红色减号
然后我们把led.c添加进我们的分组
点击options for target ->output->勾选create Library... 然后更改生成的LIB的文件名,我改为"LED_DRIVE".
选择输出路径。也就是点击SelectFolder for Objects,(也可以不选择,默认的为OBJ文件夹),这里我们就不选择吧。点击编译。。。
然后我们在OBJ(或者你手动选择的路径下找到lib文件)
然后我们将它剪切到"DRIVE"文件夹下。
回到原本led.c的目录,将LED.h剪切到"DRIVE"文件夹下。
回到工程界面,移除原本的LED.c文件(全部移除,无论是LED_DRIVE里面的还是原本HARWARE里面的,都移除),将头文件的路径改为“DRIVE”.
、
然后在LED_DRIVE里添加“LED_DRIVE.lib” 记住,如果在DRIVE路径下找不到lib文件,一定要记得将文件类型选择为“所有文件”或者“lib”文件。
点击ADD.
然后,接下来这一步很关键,就是要还原之前被取消的√。
options for group...->properties
重新勾上include in build 的√
然后,编译。。。。整个过程就完成了。我们的LED.c就被我们封装成了lib。
我们这时候去点LED_Init()的definetion ,就进不去了。但是只要这个函数再.h文件里面有声明,其他c文件包含“led.h”是可以调用.ilb的函数的。
十分完美的保证了我们LED.c的文件源代码的安全,不被其他人看到。
可以。。。。。。 感谢各位学长:loveliness: 顾福源 发表于 2017-8-5 22:39
感谢各位学长
顾老师,你这装嫩的操作过分了哈。
页:
[1]