好记性不如铅笔头

linux, 编程

Linux常用命令备份:ar

以下内容转自【 http://codingstandards.iteye.com/blog/1142358 】,有删改。

CONTENTS

用途说明

创建静态库.a文件。用C/C++开发程序时经常用到,但我很少单独在命令行中使用ar命令,一般写在makefile中,有时也会在shell脚本中用到。

常用参数

ar rcs  libxxx.a xx1.o xx2.o

参数r:在库中插入模块(替换)。当插入的模块名已经在库中存在,则替换同名的模块。如果若干模块中有一个模块在库中不存在,ar显示一个错误消息,并不替换其他同名模块。默认的情况下,新的成员增加在库的结尾处,可以使用其他任选项来改变增加的位置。【1】
参数c:创建一个库。不管库是否存在,都将创建。
参数s:创建目标文件索引,这在创建较大的库时能加快时间。(补充:如果不需要创建索引,可改成大写S参数;如果.a文件缺少索引,可以使用ranlib命令添加)

ar t libxxx.a

显示库文件中有哪些目标文件,只显示名称。

ar tv libxxx.a

显示库文件中有哪些目标文件,显示文件名、时间、大小等详细信息。

nm -s libxxx.a

显示库文件中的索引表。

ranlib libxxx.a

为库文件创建索引表。

ar命令介绍:

cstriker1407@cstriker1407-x64:~$ ar
Usage: ar [emulation options] [-]{dmpqrstx}[abcDfilMNoPsSTuvV] [--plugin <name>] [member-name] [count] archive-file file...
       ar -M [<mri-脚本]
 命令:
  d            - 从归档文件中删除文件
  m[ab]        - 在归档文件中移动文件
  p            - 打印在归档文件中找到的文件
  q[f]         - 将文件快速追加到归档文件中
  r[ab][f][u]  - 替换归档文件中已有的文件或加入新文件
  s            - act as ranlib
  t            - 显示归档文件的内容
  x[o]         - 从归档文件中分解文件
 特定命令修饰符:
  [a]          - 将文件置于 [成员名] 之后
  [b]          - 将文件置于 [成员名] 之前 (于 [i] 相同)
  [D]          - use zero for timestamps and uids/gids
  [U]          - use actual timestamps and uids/gids (default)
  [N]          - 使用文件名编号
  [f] - 截短插入的文件名
  [P]          - 在匹配时使用完整的路径名
  [o]          - 保留原来的日期
  [u]          - 只替换比当前归档内容更新的文件
 通用修饰符:
  [c]          - 不在必须创建库的时候给出警告
  [s]          - 创建归档索引 (cf. ranlib)
  [S]          - 不要创建符号表
  [T]          - make a thin archive
  [v]          - 输出较多信息
  [V]          - 显示版本号
  @<file>      - 从 <file> 中读取选项
  --target=BFDNAME - specify the target object format as BFDNAME
 optional:
  --plugin <p> - load the specified plugin
 仿真选项: 
  没有仿真特有的选项
ar:支持的目标: elf64-x86-64 elf32-i386 elf32-x86-64 a.out-i386-linux pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big elf32-little elf32-big pe-x86-64 pe-bigobj-x86-64 pe-i386 plugin srec symbolsrec verilog tekhex binary ihex

 

发表评论

18 + 13 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据