ar命令可以用来创建、查询、修改库。库是一单独的文件,里面包含了按照特定的结构组织起来的源文件。原始文件的内容、模式、时间戳、属主、组等属性都保留在库文件中。
命令选项:
-d:删除库文件中的成员文件
-m:变更成员文件在库文件中的次序
-p:显示库文件中的成员文件内容
-q:将文件附加在库文件末端
-r:将文件插入库文件中
-t:显示库文件中所包含的文件
-x:从库文件中取出成员文件
-a<成员文件>:将文件插入库文件中指定的成员文件之后
-b<成员文件>:将文件插入库文件中指定的成员文件之前
-c:建立库文件
-f:截掉要放入库文件中过长的成员文件名称
-i<成员文件>:将文件插入库文件中指定的成员文件之前
-o:保留库文件中文件的日期
-s:若库文件中包含了对象模式,可利用此参数建立备存文件的符号表
-S:不产生符号表
-u:只将日期较新文件插入库文件中
-v:程序执行时显示详细的信息
-V:显示版本信息
示例:
1、加入成员
使用"ar -r liba.a b.o"即可以将b.o加入到liba.a中。
默认的加入方式为append,即加在库的末尾。"r"关键字可以有三个修饰符"a", "b"和"i"。
1)"a"表示after,即将新成员加在指定成员之后。例如"ar -ra a.c liba.a b.c"表示将b.c加入liba.a并放在已有成员a.c之后;
2)"b"表示before,即将新成员加在指定成员之前。例如"ar -rb a.c liba.a b.c";
3)"i"表示insert,跟"b"作用相同
2、列出库中已有成员
"ar -t liba.a"即可。如果加上"v"修饰符则会一并列出成员的日期等属性。
3、删除库中成员
"ar -d liba.a a.c"表示从库中删除a.c成员。如果库中没有这个成员ar也不会给出提示。如果需要列出被删除的成员或者成员不存在的信息,就加上"v"修饰符。
4、从库中解出成员
"ar -x liba.a b.c"表示从库中解出.o文件
5、调整库中成员的顺序
使用"m"关键字。与"r"关键字一样,它也有3个修饰符"a","b", "i"。如果要将b.c移动到a.c之前,则使用"ar -mb a.c liba.a b.c"
6、生成静态库文件
ar –rc test.a test.o表示将.o打包到库文件中