静态库的制作与使用

2019-05-24  本文已影响0人  54c1eca7148a

1、静态库的命名方式

    lib+库名.a,如libtmath.a。

2、如何制作静态库文件

(1)将需要加到静态库的源文件编译为目标文件

(2)将目标文件添加到静态库

(3)使用静态库文件链接目标文件形成可执行文件

例:add.c实现两个数的加减法,mul.c实现两个数的乘除法。tmath.h包含声明add.c和mul.c的相关内容。(为了编译方便,将所有需要加入静态库的文件放到一个文件夹下,不包括主函数文件),此例中add.c等加入库的文件在tmath文件夹下,包含main函数的文件在他的上层位置文件存放。主函数实现在tt1.c中。

(1)当前目录tmath,:gcc  -c  *.c,将所有源文件编译为目标文件。

(2)将目标文件添加到静态库,ar  -r  libtmath.a *.o

(3)使用静态库链接目标文件形成可执行文件。gcc -c tt1.c(注意tt1.c中的头文件包含路径),gcc tt1.o -Ltmath -ltmath。相关命令查询见笔记末链接。

(4)使用./a.out执行即可。

Linux ar命令:

命令用于建立或修改备存文件,或是从备存文件中抽取文件。

ar可让您集合许多文件,成为单一的备存文件。在备存文件中,所有成员文件皆保有原来的属性与权限

语法

ar[-dmpqrtx][cfosSuvV][a<成员文件>][b<成员文件>][i<成员文件>][备存文件][成员文件]

参数

必要参数

-d  删除备存文件中的成员文件。

-m  变更成员文件在备存文件中的次序。

-p  显示备存文件中的成员文件内容。

-q  将文件附加在备存文件末端。

-r  将文件插入备存文件中。

-t  显示备存文件中所包含的文件。

-x  自备存文件中取出成员文件。

选项参数

a<成员文件>  将文件插入备存文件中指定的成员文件之后。

b<成员文件>  将文件插入备存文件中指定的成员文件之前。

c  建立备存文件。

f  为避免过长的文件名不兼容于其他系统的ar指令指令,因此可利用此参数,截掉要放入备存文件中过长的成员文件名称。

i<成员文件>  将文件插入备存文件中指定的成员文件之前。

o  保留备存文件中文件的日期。

s  若备存文件中包含了对象模式,可利用此参数建立备存文件的符号表。

S  不产生符号表。

u  只将日期较新文件插入备存文件中。

v  程序执行时显示详细的信息。

V  显示版本信息。

实例

打包文件

[root@w3cschool.cc ~]# ls  //显示当前目录文件  a.c    b.c d.c  install.log      qte

anaconda-ks.cfg c.c Desktop [root@w3cschool.cc ~]# ar rv one.bak a.c b.c //打包 a.c b.c文件 ar: 正在创建 one.bak

a - a.c

a - b.c[root@w3cschool.cc ~]#

打包多个文件

[root@w3cschool.cc ~]# ar rv two.bak *.c  //打包以.c结尾的文件  ar: 正在创建 two.bak

a - a.c

a - b.c

a - c.c

a - d.c[root@w3cschool.cc ~]#

显示打包文件的内容

[root@w3cschool.cc ~]# ar t two.bak   

a.c

b.c

c.c

d.c[root@w3cschool.cc ~]#

删除打包文件的成员文件

[root@w3cschool.cc ~]# ar d two.bak a.c b.c c.c  [root@w3cschool.cc ~]# ar t two.bak     

d.c

也可以使用man ar命令,查看ar相关帮助

linux命令查询:https://www.runoob.com/linux/linux-command-manual.html

https://www.linuxdaxue.com/linux-commands-manual

上一篇下一篇

猜你喜欢

热点阅读