静态库管理

静态库管理工具 ar 和 ranlib

参考:《UNIX 系统与 软件开发 》中国铁道出版设 邵国金主编 第十章 编程基础篇

一、静态库管理工具

1、ar

      ar的功能是静态库文件的管理,可用于静态库的创建,模块添加,提取及删除等,其用法如下:

      ar [-] p [mod [relpos]   [ count ] ] archive [member ...]

其中:p 功能参数,mod 修饰参数,部分参数说明如下;

类型
参数
意义

d
从库文件中删除模块
功能参数
m
移动模块位置(与a,b和i 配合使用)

p
显示模块到内容到标准输出

q
快速追加模块到文件到尾部(不检查是否又重复模块
功能参数
r
在库文件中插入模块(插入过程替换重名模块)

t
列库文件中模块到列表

x
从库文件中提取模块

a
在指定模块后追加

b,i
在指定模块前插入
修饰参数
c
创建库文件

s
为库文件建立或更新索引,ar -s libfile 和 ranlib libfile相同

S
不创建符号表(若不创建,则在使用前必须使用ranlib 或ar -s 创建

v
显示工作过程信息

2、ranlib

        ranlib 用于为刚建立到静态库建立符号索引表,基本用法:

              ranlib archive ...

      若在使用ar维护静态库时没有使用-S选项,之后可不运行ranlib。

3、nm

        nm 用于显示目标模块到符号或函数表,比如

        nm file.o                            # 显示目标模块file2.o中的函数名

二、静态库管理实例

      1、创建静态库

            创建静态库,需要以下过程:(1)编写源代码文件;(2)由源代码文件生成.o目标文件;(3)用ar命令将若干目标文件生成静态库文件。

例如:用file1.c 和 file.c 生成libfile.a的过程如下:

$: gcc -c file1.c file2.c                   # 生成目标文件

$: ar -crv libfile.a file1.o file2.o     # 够做静态库

$: ranlib libfile.a                             # 构建索引表(若创建库时未使用-S,可不做此步)

        2、库的维护

$: ar -t libfile.a                              # 查看库中到模块

$:ar -x libfile.a file1.o                   # 提取file1.o模块(原件保留)

$:ar -d libfile.a file1.o                     # 从库libfile.a中删除file1.o模块

$:ar -r libfile.a file1.o                      # 向库libfile.a中添加file1.o模块

        3、对非标准静态库的使用

        对于非标准库,在使用时需要使用-l指定库名,-L指定库文件位置。


posted @ 2014-09-07 16:37  朔珩轩  阅读(215)  评论(0编辑  收藏  举报