7.6 子程序库

库文件对学过C/C++语言程序设计的读者来说应该是不会陌生的,该语言的程序设计环境提供了大量的库文件,也就是说,提供了大量的标准函数或过程。在本节里,介绍读者如何创建自己的库文件。

7.6.1 建立库文件命令LIB

宏汇编MASM系统提供了建立库文件的命令文件LIB.EXE。其通常是在命令行环境(MS-DOS方式)下使用的,当然,也可在Windows 95/98等环境下利用其“开始”菜单下的“运行”功能项来使用。

一、MS-DOS系统

显示命令LIB用法的命令如下:

…>lib /?

该命令的显示结果如图7.9中所示。

二、Windows系统

图7.8 运行LIB命令的画面

图7.9 显示LIB命令功能的画面

命令LIB的使用方式和显示结果如图7.8和7.9所示。

三、命令显示内容的解释

1)、各选项的解释

选项 含义
/?、/HELP 显示LIB命令的用法,描述各命令行参数的含义
/IGNORECASE 忽略子程序名中的大小写 在实践中,作用不明显
/NOIGNORECASE 不忽略子程序名中的大小写
/NOEXTDICTIONARY 不建立扩展的目录
/NOLOGO 不显示版本号和版权信息
/PAGESIZE:n 设置库文件的每页字节数为n

2)、命令项的解释:

选项 含义
+name 向库文件中加一个新的目标文件
-name 从库文件中删除一个指定的目标文件
-+name 用新的目标文件替换掉库文件中原有的目标文件
*name 拷贝出指定的目标文件
-*name 从库文件中移出指定的目标文件

在弄懂了LIB的各项功能含义后,读者就可根据自己的需要来建立库文件了。

7.6.2 建立库文件举例

假设现有目标文件sub1.obj、sub2.obj和sub3.obj,要用它们建立库文件mylib.lib。可用下列方法来建立该库文件:

方法1:所有目标文件都准备好了,可一次性把它们加入到库文件中

…>lib  mylib +sub1 +sub2 +sub3

方法2:随着目标文件的逐个生成,而依次把它们加入到库文件中

…>lib  mylib +sub1
…>lib  mylib +sub2
…>lib  mylib +sub3

假如源文件sub3.asm已修改,并也生成了新的目标文件sub3.obj,这时,就需要把库文件mylib.lib中的sub3.obj替换成新的目标文件。于是,可用下面命令来实现替换:

…>lib  mylib  -+sub3

当提示输入目标库文件名(Output library)时,可按“回车”用默认的原库文件名。

如果想查看库文件mylib.lib中各文件的大小和存放的先后次序,可用下列命令:

…>lib  mylib, list     ;把库文件mylib.lib中的文件结构生成到文件list中
…>type  list