您的位置 首页 ADAS

STM32之怎么编译出 .lib 文件

申明:lib文件的一个恶心应用,就是必须给别人自己的代码应用,但是又不想直接给C源码,这时候就可以把某些机密c文件编译成li

声明: .lib 文件的一个“厌恶”使用,便是有必要给他人自己的代码使用,可是又不想直接给C源码,这时候就能够把某些秘要 .c 文件编译成 .lib 文件给他人用。可是个人主张作为一个肄业者,不要做这样的“厌恶”工作。当然还有其它的一些效果。

这个是生成LIB的技巧.或许咱们在网上看到某些程序会发现,他们用这个方法来包括STM32
的库文件:


而不是像DX32的例程那样一堆C:


那么,本技巧篇例程便是教咱们怎样生成那个.LIB 的文件的.

首要打开本程序,咱们看到的整个工程就只有库文件:


由于这是把STM32的函数库编译成库的方法,所以你只需要包括函数库就行.
然后留意一点,stm32f10x_conf.h 文件中,一切的include都要敞开
#include “stm32f10x_adc.h”
#include “stm32f10x_bkp.h”
#include “stm32f10x_can.h”
#include “stm32f10x_crc.h”
#include “stm32f10x_dac.h”
#include “stm32f10x_dbgmcu.h”
#include “stm32f10x_dma.h”
#include “stm32f10x_exti.h”
#include “stm32f10x_flash.h”
#include “stm32f10x_fsmc.h”
#include “stm32f10x_gpio.h”
#include “stm32f10x_i2c.h”
#include “stm32f10x_iwdg.h”
#include “stm32f10x_pwr.h”
#include “stm32f10x_rcc.h”
#include “stm32f10x_rtc.h”
#include “stm32f10x_sdio.h”
#include “stm32f10x_spi.h”
#include “stm32f10x_tim.h”
#include “stm32f10x_usart.h”
#include “stm32f10x_wwdg.h”
#include “misc.h”
这是由于当这堆C文件编译成*.LIB后,里边的内容将是稳定的,不能削减的.(这是C言语的理
念,跟编译器什么的无关),所以咱们有必要敞开一切H 文件,这样编译出来的LIB 文件才是万能
的.这个了解,就和一般的DX32例程中包括一大堆C文件的含义是相同的.只不过是咱们先把
库函数那部分预先编译成LIB 文件.
然后,便是挑选编译成LIB:


编译后的库文件的姓名是可界说的,这儿随意改个姓名叫LIB.


然后嘛,便是编译,编译完成后,LIST目录上就有一个LIB.lib文件了,留意文件的后缀名固定为
lib 的.
到这儿,一个LIB文件就弄出来了,试试拿一个一般的DX32工程,然后把一切的函数库*.C文
件删去(留意.H 文件不要删去,由于你在程序中还要用.H 文件上的许多宏界说,例如
GPIO_Pin_1 这些宏界说),之后再加进这个LIB.lib,留意记住挑选正确的文件类型:
加进去后,就能够像平常那样编译你的工程了.
到此,LIB的生成和使用就完成了。

但有以下的缺陷是不容疏忽的:
1.为了通用,你有必要把整个库都编译,这样在程序中就不方便削减,例如我不必SPI功用,曾经
的方法便是在stm32f10x_conf.h 中屏蔽掉一些include,但这个LIB 方法却不可.即便你在
工程中保留了stm32f10x_conf.h 文件,并修正它,但这对现已编译成LIB 的库文件的巨细
和内容不产生影响
2.不方便调查库函数,通过预编译的LIB 文件,里边的一切东西都不能以C 的方法看到了,
这样关于学习来说,是有不少影响的.

3.(本人所注)能够把自己的某些秘要.c文件一同编译成.lib文件,这样能够保密自己的C源文件。(再次声明,作为肄业大军中的一员,别这样做,彼此学习,才干前进更快!)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/259263.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部