美文网首页
静态库的制作与使用

静态库的制作与使用

作者: 54c1eca7148a | 来源:发表于2019-05-24 15:43 被阅读0次

    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

    相关文章

      网友评论

          本文标题:静态库的制作与使用

          本文链接:https://www.haomeiwen.com/subject/qddwzqtx.html