armlinker的概念和option

armlinker  option

.armlinker 概念

1.       链接器根据链接的对象的构建属性,自动选择要链接的相应标准CC++库变体。

链接器可以链接ARM代码、Thumb代码和Thumb-2代码,并自动生成交互操作胶合代码,以便在需要时切换处理器状态。链接器还可以在需要时自动生成内联胶合代码或长跳转胶合代码,以扩展跳转指令的范围。

2.       链接器支持的一些命令选项可用于为系统内存映射中的代码和数据指定存放的位置。另外,也可以使用分散加载描述文件,在加载时和执行时指定输出影像中各个代码和数据节在内存中的位置。这样可以创建跨越过个内存的复杂影像。

3.       链接器支持读/写数据压缩,以减少输出影像的大小。另外,连接器还可以:

・         生成关于链接文件的调试和引用信息

・         生成静态调用图并列出其堆栈的使用情况

・         控制输出影像中符号表的内容

・         显示输出中代码和数据的大小

        链接器可提供反馈信息,以便在下次编译文件时提示编译器有未使用的函数。这些函数在后  面的编译中将放在各自所在的节中,以便链接器将来删除它们。

4.       armlink的输入

armlink的输入包括

・         一个或多个ELF对象格式的目标文件

・         用armar创建的一个或过个库。

・         一个符号定义文件

5.       armlink的输出

成功调用armlink后的输出为下列选项之一:

・         ELF可执行格式的可执行影像

・         ELF共享对象格式的共享对象

・         ELF对象格式的部分链接对象

・         ELF对象格式的可重定位对象

对于简单映像,ELF可执行文件包含相当于映像中的RORW输出节的段。ELF可执行文件还具有包含映像输出节的ELF节。

 Note:

可以使用formelfELF可执行格式的可执行映像转换为其他文件格式

6.       构造可执行映像

・         解析输入目标文件之间的符号引用

・         从库中提取对象模块来满足还未满足引用的需要

・         根据属性和名称排序输入节,并将属性和名称相似的节合并为相临快

・         删除未使用的节和未使用的虚拟函数

・         删除重复的公共组合公共代码、数据及调试节

・         根据提供的分组信息和定位信息将对象片段组织为内存区

・         给可重定位值分配地址

・         生成可执行映像

7.       构建部分链接对象

・         删除重复的调试节副本

・         最小化符号表的大小

・         将未解析的引用保留为未解析状态

・         生成一个对象,将其用作后续链接步骤的输入

Note:如果使用部分链接,则不能通过分散加载描述文件中的名称来引用组件对象

.armlink command syntax

 根据选项类型而定,可以分为单字母选项和关键字选项

(1)单字母选项

在所有单字母选项或带参数的单字母选项之前,都有一个单短划线-选项与自变量之间可以使用空格,或者自变量可以紧跟选项之后。例如:- o file

(2)关键字选项

在所有关键字选项或带参数的关键字选项前面,都有一个双短划线- - 。 例如:- - output file

Note:

对于使用括号的命令行参数,在 UNIX 系统上可能需要使用反斜杠 (\) 字符对括号字符进行转义。

获取帮助和信息

要获取关于可用命令行选项和工具版本号的信息,请使用:

1.- - help 输出一些常用命令行选项的汇总。

2.- - vsn 显示链接器版本信息和许可证信息。

指定输入文件列表

1.input-file-list

1>这是以空格分隔的对象、库或符号定义 (symdefs) 文件的列表。链接器将整个输入文件列表按照一定的顺序排列。如果链接器无法解决输入文件问题,则生成诊断消息。可以将 symdefs 文件包括在列表中,为先前生成的映像文件提供全局符号值。

2>可以用以下方式来使用输入文件列表中的库:

你可能感兴趣的:(C++,object,File,Path,编译器)