Hexagon Binutils GNU 手册(19)

  • 4.3 Archiver(存档器)
    • 4.3.1 Archiver options(存档器选项)
      • 4.3.1.1 Command options(命令选项)
      • 4.3.1.2 修改选项(Modifier options)

4.3 Archiver(存档器)

hexagon-ar [-]c[mod...] [member_name] [count] archive_file
[file...]
hexagon-ar -M [script_file]

归档实用程序创建、修改和提取归档。 档案是一个单一的文件,其结构中包含其他文件的集合,可以从档案中检索原始的单个文件。 当文件存储在档案中时,它被称为档案的member

原始文件的内容、模式(权限)、时间戳、所有者和组保留在存档中,并且可以在提取时恢复。

存档器被认为是二进制实用程序,因为此类存档最常用作保存常用子例程的libraries库。

当你指定 s 修饰符选项时,归档程序会为归档中可重定位对象模块中定义的符号创建索引。 创建后,只要归档器对其内容进行更改(保存为 q update 操作),该索引就会在归档中更新。 具有这种索引的存档加快了与库的链接,并允许库中的例程相互调用,而无需考虑它们在存档中的位置。

你可以使用命令 *“hexagon-nm -s"或"hexagon-nm --print-armap”*来列出这个索引表。 如果存档缺少表,则可以使用另一种形式的存档器(第 4.7 节)仅添加表。

存档器可以选择创建精简存档,其中仅包含符号索引和对存档成员文件原始副本的引用。 精简存档对于构建在本地构建中使用的库很有用(在这种情况下,可重定位的对象预计将保持可用,并且复制每个对象将是浪费的)。 将一个或多个存档添加到精简存档会单独添加嵌套存档的元素。 精简档案元素的路径是相对于档案本身存储的。

归档器可以通过两种方式进行控制:

  • 使用命令行选项
  • 使用通过标准输入提供的脚本(使用 -M 选项)

4.3.1 Archiver options(存档器选项)

当你使用 UNIX 风格的归档器时,归档器坚持至少要执行两个参数:

  • A command(可选地带有一个或多个修饰符)
  • 将应用该命令的存档文件的名称

命令和修饰符(在归档器命令语法中显示为 c 和 mod)由出现在第一个命令行参数(以“-”字符开头)中的选项字母指定。 例如,参数 -dv 指定命令选项 d 和修饰符选项 v。选项字母可以在参数中以任何顺序出现。

大多数归档器操作还接受附加参数,指定要操作的特定文件或归档成员。

4.3.1.1 Command options(命令选项)

c 选项指定要执行什么操作; 它可以是以下任何一项,但你只能指定其中一项:
d
从存档中删除指定的模块。 模块被指定为文件参数; 如果未指定任何文件,则存档不受影响。
如果你指定 v 修饰符,归档器会在删除每个模块时列出它。

m
使用此操作可移动存档中的成员。
如果一个符号在多个成员中定义,则归档中成员的顺序会影响程序使用库链接的方式。
如果没有修饰符与 m 一起使用,你在文件参数中命名的任何成员都将移动到存档的末尾; 你可以使用 a 或 b 修饰符将它们移动到指定位置。

p
将归档的指定成员打印到标准输出。 如果指定了 v 修饰符,则在将其内容复制到标准输出之前显示成员名称。
如果你不指定文件参数,则会打印存档中的所有文件。

q
Quick append,从历史上看,将指定的文件添加到存档的末尾,而不检查替换。
修饰符 a 和 b 不影响此操作; 新成员总是放在存档的末尾。

修饰符 v 使归档器列出每个附加的文件。由于此操作的重点是速度,因此存档的符号表索引不会更新,即使它已经存在;  你可以使用命令“hexagon-ar s”或存档索引器(第 4.7 节)来更新符号表索引。然而,太多不同的系统假设快速追加重建索引,所以归档器将 q 实现为 r 的同义词。

r

将指定的文件插入存档(带替换)。  此操作与 q 的不同之处在于,如果先前存在的成员的名称与正在添加的成员匹配,则将删除任何先前存在的成员。如果指定的文件之一不存在,归档程序会显示一条错误消息,并保持与该名称匹配的归档的任何现有成员不受干扰。默认情况下,新成员会添加到存档文件的末尾;  但是你可以使用修饰符 a 或 b 之一来请求相对于某些现有成员的位置。与此操作一起使用的修饰符 v 为每个插入的文件引发一行输出,以及字母 a 或 r 中的一个来指示文件是附加(没有删除旧成员)还是替换。

t
显示一个表格,列出指定存档的内容,或存档中存在的指定文件的内容。 通常只显示存档成员名称; 如果你还想查看模式(权限)、时间戳、所有者、组和大小,你可以通过指定 v 修饰符来请求。

如果不指定文件,则列出存档中的所有文件。如果存档(例如 ba)中存在多个同名文件(例如 fie),则命令“hexagon-ar -t ba fie”仅列出第一个实例;  要查看所有这些,你必须生成一个完整的列表:在我们的示例中,“hexagon-ar -t ba”。

x
从存档中提取成员(命名成员)。 你可以在此操作中使用 v 修饰符,以请求归档程序在提取每个名称时列出每个名称。
如果你不指定文件,则会提取存档中的所有文件。

注意 不能从精简存档中提取文件(第 4.3 节)。

4.3.1.2 修改选项(Modifier options)

修饰符选项可以紧跟在命令选项之后,以指定操作行为的变化:
a
在存档的现有成员之后添加新文件。 如果使用修饰符 a,则必须将现有存档成员的名称指定为 member_name 参数。

b
在存档的现有成员之前添加新文件。 如果使用修饰符 b,则现有存档成员的名称必须作为 member_name 参数出现。

c
创建存档。当你请求更新时,如果指定的存档文件不存在,则始终会创建它。但是会发出警告,除非你通过使用此修饰符提前指定你希望创建它。

f
截断归档文件中的名称。存档程序通常允许任意长度的文件名。这将导致它创建与某些系统上的本机归档程序不兼容的归档程序。如果这是一个问题,可以使用f修饰符在将文件名放入存档时截断它们。

N
使用count参数。如果归档文件中有多个名称相同的条目,则使用此方法。从存档中提取或删除指定名称的实例计数。

o
当从归档文件中提取成员的原始日期时,请保留它们。如果不指定此选项,则从归档中提取的文件将被标记提取时间。

P
当匹配归档文件中的名称时,使用完整的路径名。归档程序不能创建具有完整路径名的归档文件(这样的归档文件不是POSIX投诉),但其他归档文件创建者可以。这个选项将导致归档器使用完整的路径名来匹配文件名,这在从另一个工具创建的归档中提取单个文件时非常方便。

s
将对象文件索引写入存档,或更新现有的索引,即使没有对存档做其他更改。你可以在任何操作中使用此选项,也可以单独使用此选项。在归档文件上运行“hexagon-ar s”命令相当于在归档文件上运行归档索引器(第4.7节)。

S
不要生成存档符号表。这可以通过几个步骤加快构建大型库的速度。生成的存档不能与链接器一起使用。为了构建一个符号表,你必须在归档程序的最后一次执行中省略S修饰符,或者你必须在归档程序上运行归档索引器(章节4.7)。

T
将存档指定为精简存档(章节4.3)。如果指定的归档文件已经存在并且不是精简归档文件,那么现有成员必须驻留在与归档文件相同的目录中。

u
通常,命令“六边形-ar r…”"将插入归档文件中列出的所有文件。如果你只想插入你所列出的文件中比具有相同名称的现有成员更新的文件,请使用此修饰符。u选项只允许用于操作r(替换)。特别是,组合qu是不允许的,因为检查时间戳会失去操作q的速度优势。

v
请求操作的详细版本。当修饰符v被附加时,许多操作会显示额外的信息,比如被处理的文件名。

V
显示归档程序的版本号。

Hexagon Binutils GNU 手册(19)相关推荐

  1. xbox360游戏下载_Xbox Live游戏玩家API

    xbox360游戏下载 My sharpshooter status aside, I've always been surprised upset that Microsoft has never ...

  2. GNU gcc 使用手册

    最权威各版本的GNU 手册见 http://gcc.gnu.org/onlinedocs/ ------------------------------------------------------ ...

  3. GNU Linker

    目录 1.铺垫 1.1.预编译 1.2.编译 1.3.汇编 1.4.链接 2.GNU ld 2.1.binutils 2.2.Linker script 2.2.1.基本语法 2.2.2.定义入口 E ...

  4. Java开发手册——嵩山版(清幽现云山,虚静出内功)

    终于找到了--阿里巴巴Java开发手册1.7.0(嵩山版) 前言 <Java 开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一 线实战的检验及不断完善,公开到业 ...

  5. linux/unix编程手册-16_20

    title: linux/unix编程手册-16_20 date: 2018-06-06 11:53:07 categories: programming tags: tips linux/unix编 ...

  6. Linux二进制实用工具Binutils工具集解析()

    From:http://blog.csdn.net/zqixiao_09/article/details/50783007 GNU Binutils:http://www.gnu.org/softwa ...

  7. Linux 工具套件 —— binutils、readelf

    readelf:Linux 下专门针对 ELF 文件格式的解析器: 0. binutils GNU Binutils gnu binutils 一套二进制工具的集合,主要包含:ld(gnu linke ...

  8. GNU 开发工具(GNU Development Tools)

    全称 gdb - GNU 调试器 概要 gdb [-help] [-nh] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev] [-s sym ...

  9. 阿里巴巴 Java 开发手册1.4.0

    2019独角兽企业重金招聘Python工程师标准>>> 阿里巴巴 Java 开发手册1.4.0 1/38 Java 开发手册 1.4.0 阿里巴巴集团技术团队 2018.5.20 增 ...

最新文章

  1. Microsoft Web 平台安装程序 (Web PI) Microsoft Web Platform Installer
  2. 《Linux内核设计与实现》读书笔记(九)- 内核同步介绍
  3. 这台计算机怎么磁盘清理,电脑硬盘满了怎么清理(教你3招彻底清理内存,瞬间多出几十个G)...
  4. DeepMind发布Sonnet 帮你用TensorFlow快速搭建神经网络
  5. jquery --- DOM操作、表单元素的初始化
  6. jQuery之滚动事件$(window).scroll(function()
  7. 小学计算机教师育人案例,台屯小学青年教师李春秀育人案例
  8. 1.4_10 有一门不及格的学生
  9. 25@JSP_day08
  10. python stdin read_python 3:使用readahead从stdin管道读取字节
  11. MyBatis获取参数值的两种方式以及传参情况
  12. 【bash】今天你坑队友了吗
  13. 中国吸尘器产业发展前瞻与市场投资盈利分析报告2021年版
  14. IT服务管理流程控制主要绩效指标有哪些?
  15. 联通鸿蒙卡怎么样,联通不限流量卡,联通无限流量,正规资费
  16. 用python写飞机大战过几天不能运行了_最近写的一个飞机大战的程序,写到一半有一个已经写好的函数但不能运用,强行运行程序秒退,百思不得其姐...
  17. 二十一、Java8新特性——Stream API【黑马JavaSE笔记】
  18. Java基础关于接口的案例及多态的引用类型转换练习题
  19. 计算机主板设计与应用说明,电脑主板的主要参数及其含义介绍
  20. 5款靠谱的安卓备份应用

热门文章

  1. 【9k字+】第二篇:进阶:掌握 Redis 的一些进阶操作(Linux环境)
  2. DelayQueue原理与使用
  3. hifi播放器安卓和linux,烧友眼中“最强”的5K档HIFI播放器简评丨谁是NO.1?
  4. iOS开发之OC入门(类的基础知识)
  5. mysql删除数据对索引的影响_mysql中索引可以删除吗?
  6. 关于大学生道德现状的思考
  7. 网络流24题之太空飞行计划——最大权闭合子图
  8. 包头钢铁职业技术学院题库计算机,包头钢铁职业技术学院单独招生题库(计算机).DOC...
  9. matter的通用设备类型
  10. android开发之音频拼接