ar

作者: 猿佑 | 来源:发表于2019-02-22 20:22 被阅读0次

    ar命令可以用来创建、修改库,也可以从库中提取单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其他的一些文件(称作此库文件的member)。原始文件的内容、模式、时间戳、组等属性都包含在库文件中。

    语法

    ar [-]{dmpqrstx}[abcDfilMNoPsSTuvV][a<membername>][b<membername>]archive-file files

    参数

    -d:删除库中的文件。
    -m[abi]:变更成员文件在备存文件中的次序。
    -p:显示库文件中的成员文件内容。
    -q:将文件附加在库文件末端。
    -r[ab][f][u]:将文件插入库文件中。
    -s:若库文件包含了对象模式,可利用此参数简建立库文件的符号表。
    -t:显示库文件中所包含的文件。
    -x:从库文件中提取出成员文件。

    选项参数

    a<成员文件>:将文件插入到库文件中指定的<成员文件>之后(after)。
    b<成员文件>:将文件插入到库文件中指定的<成员文件>之前(before)。
    c:创建库文件(无论库文件是否已经存在)。
    D:用0来填充时间戳和uid、gid。
    U:用实际的时间戳、uid、gid(默认参数)。
    N:与count参数一起使用,在库中有多个相同的文件名时指定提取或输出的个数。
    f:为避免过长的文件名不兼容于其他系统的ar指令指令,因此可利用此参数,截掉要放入备存文件中过长的成员文件名称。
    i<成员文件>:将文件插入到库文件中指定的<成员文件>之前。
    o:保留库文件中文件的日期。
    P:进行文件名匹配时使用全路径名。
    u:只将日期比库文件中的同名成员文件新的文件插入库文件中。
    v:程序执行时显示详细的信息。
    V:显示版本信息。
    S:不产生符号表。

    {dmpqrstx}部分称为操作选项,选项前可以有‘-’字符,也可以没有;[abcDfilMNoPsSTuvV]部分称为任选项。

    操作项在命令中只能并且必须使用其中一个,含义如下
    m:该操作在一个库中移动成员。当库中有若干模块相同的符号定义(如函数定义),则成员的位置顺序很重要。如果没有指定选项,任何指定的成员将移动到库的最后。也可以使用‘a’,‘b’,‘i’任何选项移动到指定的位置。
    q:快速追加。增加新模块到库的结尾处。这时,符号表没有更新,可以用 ‘ar s’或ranlib来更新库的符号表索引。
    x:从库中提取一个成员。如果不指定要提取的模块,则提取库中所有的模块。

    可与操作项结合使用的任选项:
    N:与count参数一起使用,在库中有多个相同的文件名时指定提取或输出的个数。
    s:写入一个目标文件索引到库中,或者更新一个存在的目标文件索引。对一个库做ar s等同于对该库做ranlib。
    S:不创建目标文件索引,这在创建较大的库时能加快时间。

    使用

    1.创建库文件

    ar -r libt.a a.h b.h
    

    2.查看库文件

    ar -t libt.a
    a.h
    b.h
    

    3.加入新成员

    ar -ri a.h libt.a c.h
    ar -t libt.a
    c.h
    a.h
    b.h
    

    4.删除库中的成员

    ar -d libt.a c.h
    ar -t libt.a
    a.h
    b.h
    

    5.从库中提取成员

    ar -x libt.a
    

    6.调整库中成员的顺序

    ar -mb a.h libt.a b.h
    ar -t libt.a
    b.h
    a.h
    

    相关文章

      网友评论

          本文标题:ar

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