Keil C 库文件的制作 在实际工作中,我们可能通常要为我们的知识产权进行恰当的保护,这样我们就可能经常不方便以源代码的形式交付我们的劳动成果,所以这时候我们就需要将我们的执行码作为交付的方式交付使用方使用
对此我们也就需要把我们所设计的对象,封装在执行码文档中,并且要保证不影响使用方的使用
Keil C 允许我们在一个工程中包含两类执行码文件,即
o bj 文件与
lib 文件
如图 9-2: 图9-2 项目中可包含
o bj 与
lib 两类执行码文件 下面我们来研究
lib 封装执行码的方法
先在我们的工程中包含一个Keil C 中提供的库文件,如C51BS
LIB,然后在项目的工作空间中对文件名点右键
如图9-3: 图9-3 查看C51BS
LIB 的设置选项 选择“为文件C51BS
LIB 设置选项”后,将出现 C51BS
LIB库文件的一些重要信息
如图 9-4: 图 9-4 查看 C51BS
LIB 的设置选项 我们这里特别关注一下图 9-4 中所说的模块这个概念
如图9-5 中关于模块的信息: 图9-4 C51BS
LIB 库的模块设置选项 我们这样来理解,模块是库文件中一个完整的执行码整体,它在联合编译的时候将会被整体联入我们的目标文件中去
这就意味着在一个库文件中的同一个模块里的执行码,无论我们在项目中有没有使用,它都将会被联入
这个问题就是我们需要关注的问题
如果我们的模块中有可能出现不希望总被联入的执行码,我们就必须要把它从现有的模块中独立出来,单独形成模块
不要让额外的执行码来消耗我们的单片机程序空间
为了创建一个好用的库,我们先从图9-5 中了解一下库的空间逻辑关系
了解了库空间逻辑关系后我们再来了解一下Keil C 所提供的lib51 库管理工具,如图 9-6: LIB M1 M2 Mn 变量 函数 对象 图 9-5 库的空间逻辑关系