77范文网 - 专业文章范例文档资料分享平台

ld中文使用手册完全版(2)

来源:网络收集 时间:2020-05-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

如果输入文件跟输出文件的格式不同,只有在输入文件不含有重定位信息的时候部分连接才被支持.输出格式不同的时候会有更多的限制.比如,有些'a.out'的格式在输入文件是其他格式的时候完全不支持部分连接。 这个选项跟'-i'等效.

`-R FILENAME'

`--just-symbols=FILENAME'

从FILENAME中读取符号名跟它们的值,但不重位这个文件,或者根本不把它包含在输出文件中.这就允许你的输出文件引用其它程序中定义的绝对内存地址.你可以多次使用这个选项.

为了跟其他ELF连接器兼容,如果'-R'选项后面跟有一个目录名,而不是一个文件名,它会被处理成 '-rpath'选项.

`-s'

`--strip-all'

忽略输出文件中所有的符号信息.

`-S'

`--strip-debug'

忽略输出文件中所有的调试符号信息(但不是所有符号). `-t'

`--trace'

打印'ld'处理的所有输入文件的名字.

`-T SCRIPTFILE'

`--script=SCRIPTFILE'

把SCRIPTFILE作为连接脚本使用. 这个脚本会替代'ld'的缺省连接脚本(而不是增加它的内容),所以

命令文件必须指定所有需要的东西以精确描述输出文件. 如果SCRIPTFILE在当前目录下不存在,'ld'

会在'-L'选项指定的所有目录下去寻找.多个'-T'选项会使内容累积.

`-u SYMBOL'

`--undefined=SYMBOL'

强制SYMBOL在输出文件中作为一个无定义的符号被输入.这样做会有一些效果,比如,会引发从标准库

中连接更多的模块. '-u'可以以不同的参数反复使用,以输入多个无定义的符号.这个选项跟连接脚

本命令中的'EXTERN'是等效的.

`-Ur'

对于不是C++的程序,这个选项跟'-r'是等效的: 它产生可重定位的输出,比如,一个输出文件它可以再

次作为'ld'的输入. 当连接C++程序时,'-Ur'解析构造函数的引用,跟'-r'不同. 但如果在一些用'-Ur'

连接过的文件上再次使用'-Ur',它不会工作,因为一旦构造函数表被建立,它不能被添加内容.请只在

最后一遍连接的时候使用'-Ur', 对其它的,只使用'-r'.

`--unique[=SECTION]'

对于所有匹配SECTION的输入节,在输出文件中都各自创建单独的节,或者,如果可选的通配符SECTION

参数丢失了,为每一个孤儿输入节创建一个输出节. 一个孤儿节是一个连接脚本中没有指定的节.你

可以在命令行上多次使用这个选项; 它阻止对同名输入节的合并,在连接脚本中重载输出节分配.

`-v'

`--version' `-V'

显示'ld'的版本. '-V'选项同时会列出支持的模拟器. `-x'

`--discard-all'

删除所有的本地符号.

`-X'

`--discard-locals'

删除所有的临时本地符号.对于大多数目标平台,就是所有的名字以'L'开头的本地符号.

`-y SYMBOL'

`--trace-symbol=SYMBOL'

打印出所有SYMBOL出现的被连接文件的名字. 这个选项可以被多次使用. 在很多系统中,这在预先确定底 线时很有必要.

当你拥有一个未定义的符号,但不知道这个引用出自哪里的时候,这个选项很有用.

`-Y PATH'

为缺省的库搜索路径增加一条路径.这个选项是为了跟Solaris兼容. `-z KEYWORD'

能被识别的关键字包括'initfirst', 'interpose', 'loadfltr',`nodefaultli

b', `nodelete',

`nodlopen', `nodump', `now', `origin',`combreloc', `nocombreloc' and `nocopyreloc'. 为了跟

Solaris兼容,所有其它的关键字都被忽略. 'initfirst'标志一个对象,使它在运行时,在所有其他对象之

前被初始化. 'interpose'标志一个对象,使它的符号表放在所有其他符号之前,作为主要的执行者.

'loadfltr'标志一个对象, 使它的过滤器在运行时立即被处理.'nodefaultlib'标志一个对象,使在搜索

本对象所依赖的库时,忽略所有缺省库搜索路径. 'nodelete'标志一个对象,使它在运行时不会被从内存

中删除.'nodlopen'标志一个对象,使这个对象不可以通过'dlopen'载入.'nodump'标志一个对象,使它不能

被'dldump'转储. 'now'标志一个对象,使它成为非懒惰运行时绑定对象. 'origin'标志一些可能含有

$ORIGIN的对象,'defs'不允许无定义符号. 'muldefs'允许重定义. 'comberloc'组合多个重定位节,重新

排布它们,让动态符号可见. 'nocomberloc'使多个重定位节组合无效. 'nocopyreloc'使重定位拷贝后的 结果无效.

`-( ARCHIVES -)'

`--start-group ARCHIVES --end-group'

ARCHIVES应当是一个关于档案文件的列表. 它们可以是显式的文件名,或者'-l'选项.

这些指定的档案文件会被多遍搜索,直到没有新的无定义引用被创建. 通常,一个档案文件只会被搜索一

次. 但如果这个档案文件中的一个符号需要被用来解析一个档案中的目标引用到的无定义的符号,而这个

符号在命令行上的后面某个档案文件中出现, 连接器不能解析这个引用. 把这些档案文件分组后,它们都

可被反复搜索直到所有可能的引用都被解析了为止.

使用这个选项有一个很大的运行开销. 只有在无法避免在多个档案文件中使用循环引用时才用它.

`--accept-unknown-input-arch' `--no-accept-unknown-input-arch'

告诉连接器接受那些架构不能被识别的输入文件. 但前提假设是用户知道他们在做什么,并且是故意要连

接这些未知的输入文件. 在版本2.14之前,这个是连接器的缺省行为. 从版本2.14以后的,缺省行为是拒

绝这类输入文件, 所以`--accept-unknown-input-arch'选项被用来恢复旧的行为.

`-assert KEYWORD'

这个选项被忽略,只是用来跟SunOS保持兼容.

`-Bdynamic' `-dy'

`-call_shared'

连接动态链接库. 这个仅仅在支持共享库的平台上有用.在这些平台上,这个选项通常是默认行为. 这个选

项的不同形式是为了跟不同的系统保持兼容. 你可以在命令行上多次使用这个选项:它影响紧随其后的'-l' 选项的库搜索.

`-Bgroup'

在动态节的'DT_FLAGS_1'入口上设置'DF_1_GROUP'标志.这会让运行时连接器在处理在这个对象和它的相

关部分搜索时只在组中. '--no-undefined'是隐式的. 这个选项只在支持共享库的ELF平台上有用.

`-Bstatic' `-dn'

`-non_shared' `-static'

不连接共享库. 这个仅仅在支持共享库的平台上有用. 这个选项的不同形式是为了跟不同的系统保持兼

容. 你可以在命令行上多次使用这个选项:它影响紧随其后的'-l'选项的库搜索.

`-Bsymbolic'

当创建一个共享库时, 把对全局符号的引用绑定到共享库中的定义(如果有), 通常, 一个连接共享库的程

序重载共享库中的定义是可能的. 这个选项只在支持共享库的ELF平台上有用. `--check-sections' `--no-check-sections'

让连接器在节地址被分配后不要去检查节地址是否重叠.通常,连接器会执行这种检查,如果它发现了任何

重叠,它会产生相应的错误信息. 连接器知道也允许节的重叠. 缺省的行为可以使用命令行开关

`--check-sections'来恢复.

`--cref'

输出一个交叉引用表. 如果一个连接器位图文件被产生, 交叉引用表被打印到位图文件. 否则, 它被打印 到标准输出.

表的格式相当的简单, 所以,如果需要,可以通过一个脚本很轻易地处理它. 符号是以名字被打印输出,存

储. 对于每一个符号,给出一个文件名列表. 如果符号被定义了, 列出的第一个文件是符号定义的所在.

接下来的文件包含符号的引用.

`--no-define-common'

这个选项限制对普通符号的地址分配. 脚本命令`INHIBIT_COMMON_ALLOCATION'具有同等的效果.

`--no-define-common'选项允许从输出文件的类型选择中确定对普通符号的地址分配; 否则, 一个非重定

位输出类型强制为普通符号分配地址. 使用'--no-define-common'允许那些从共享库中引用的普通符号只

在主程序中被分配地址. 这会消除在共享库中的无用的副本的空间, 同时,也防止了在有多个指定了搜索

路径的动态模块在进行运行时符号解析时引起的混乱.

`--defsym SYMBOL=EXPRESSION'

在输出文件中建立一个全局符号,这个符号拥有一个EXPRESSION指定的绝对地址. 你可以多次使用这个选

项定义多个符号. EXPRESSION支持一个受限形式的算术运算:你可以给出一个十六进制常数或者一个已存

在符号的名字,或者使用'+'和'-'来加或减十六进制常数或符号. 如果你需要更多的表达式,可以考虑在脚

本中使用连接器命令语言, 注意在SYMBOL,=和EXPRESSION之间不允许有空格. `--demangle[=style]' `--no-demangle'

这些选项控制是否在错误信息和其它的输出中重组符号名. 当连接器被告知要重组, 它会试图把符号名以

一种可读的形式的展现: 如果符号被以目标文件格式使用,它剥去前导的下划线,并且把C++形式的符号名

转换成用户可读的名字. 不同的编译器有不同的重组形式. 可选的重组形式参数可以被用来为你的编译器

选择一个相应的重组形式. 连接器会以缺省形式重组直至环境变量`COLLECT_NO_DEMANGLE'被设置. 这些

选项可以被用来重载缺省的设置.

`--dynamic-linker FILE'

设置动态连接器的名字. 这个只在产生动态连接的ELF可执行文件时有效. 缺省的动态连接器通常是正确

的; 除非你知道你在干什么,不要使用这个选项.

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库ld中文使用手册完全版(2)在线全文阅读。

ld中文使用手册完全版(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1024691.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: