`--embedded-relocs'
这个选项只在连接MIPS嵌入式PIC代码时有效, 这些代码必须是由GNU的编译器跟汇编器通过-membedded-pic
选项生成的. 它导致连接器产生一个表,这个表被用来在运行时重定位所有的被静态初始化为指针值的数 据.
`--fatal-warnings' 把所有的警告视为错误. `--force-exe-suffix'
确保输出文件有一个.exe后缀.
如果一个被成功完整连接的输出文件不带有一个'.exe'或'.dll'后缀, 这个选项确保连接器把输出文件
拷贝成带有'.exe'后缀的同名文件. 这个选项在使用微软系统来编译未经修改的Unix的makefile时很有
用, 因为有些版本的windows不会运行一个不带有'.exe'后缀的映像. `--no-gc-sections' `--gc-sections'
允许对未使用的输入节的碎片收集. 在不支持这个选项的平台上,被忽略. 这个选项不能跟 '-r'选项共存
也不能被用来进行动态连接. 缺省行为可以用`--no-gc-sections'进行恢复. `--help'
在标准输出上打印一个命令行选项概要,然后退出. `--target-help'
打印一个所有目标平台相关的选项的概要,然后退出.
`-Map MAPFILE'
打印一个连接位图到文件MAPFILE中. 参阅上面关于'-M'选项的描述. `--no-keep-memory'
'ld'通常会以速度优先于内存使用的方式优化程序,这是通过把输入文件的符号表放在内存缓冲中实现的,
这个选项告诉'ld'以内存使用优先来优化, 尽可能的减小符号表的重读. 这在'ld'在连接一个大文件时 超出内存限制时有用.
`--no-undefined' `-z defs'
通常,当创建一个非符号共享库时, 无定义的符号允许出现,并留待运行时连接器去解决. 这个选项关闭这
样的无定义符号的使用. 开关`--no-allow-shlib-undefined'控制共享对象被连接进共享库时的行为.
`--allow-multiple-definition' `-z muldefs'
通常,当一个符号被定义多次时, 连接器会报告一个致命错误. 这些选项允许重定义并且第一个定义被使 用
`--allow-shlib-undefined' `--no-allow-shlib-undefined'
允许(缺省)或不允许无定义符号存在于共享对象中. 这个开关的设置会重载'--no-undefined',这里只关
注共享对象. 这样,如果'--no-undefined'被设置,但'--no-allow-shlib-undefined'未被设置, 连锁反应
是存在于规则对象文件中的无定义的符号会引起一个错误,但是在共享对象中的未定义的符号会被忽略.
把`--allow-shlib-undefined'设置为缺省的原因是在连接时指定的共享对象并不一定是载入时可载入的
那个,所以,符号可能要到载入时间才被解析.
`--no-undefined-version'
通常当一个符号有一个未定义的版本时,连接器会忽略它. 这个选项不允许符号有未定义的版本,并且碰
到这种情况,会报告一个严重错误.
`--no-warn-mismatch'
通常, 如果你因为一些原因,企图把一些不匹配的输入文件连接起来的时候,'ld'会给出一个错误,可能这
些文件是因为由不同的处理器编译. 这个选项告诉'ld'应当对这样的错误默认允许. 这个选项必须小心 使用.
`--no-whole-archive'
为后面的档案文件关闭'--whole-archive'选项的影响.
`--noinhibit-exec'
当一个可执行文件还可以使用时,就保留它. 通常,连接器如果在连接过程中遇到了错误,就不会产生输出
文件;当它遇上错误时,它会退出而不写输出文件.
`-nostdlib'
仅搜索那些在命令行上显式指定的库路径. 在连接脚本中(包含在命令行上指定
的连接脚本)指定的库路 径都被忽略.
`--oformat OUTPUT-formAT'
'ld'可以被配置为支持多于一种的目标文件. 如果你的'ld'以这种方式被配置,你可以使用'--oformat'
选项来指定输出目标文件的二进制格式.就算'ld'被配置为支持多种目标格式,你也不必指定这个项,因
为'ld'应当被配置为把最常用的输出格式作为默认格式. OUTPUT-formAT是一个文本串,是被BFD库支持
的一个特定格式的名字.脚本命令'OUTPUT_formAT'也可以指定输出格式,但这个选项可以覆盖它.
`-qmagic'
这个选项被忽略,只是为了跟Linux保持兼容. `-Qy'
这个选项被忽略,只是为了跟SVR4保持兼容.
`--relax'
一个机器相关的选项. 只有在少数平台上,这个选项被支持.
在某些平台上,'--relax'选项在连接器解析程序中的地址时执行可能的全局优化, 比如松散地址模式和在输出文件 中合成新的指令.
在某些平台上,连接时全局优化会进行符号调试导致程序不能运行. 在不支持这个选项的平台上,'--relax'被接受,但被忽略.
`--retain-symbols-file FILENAME'
只保留在FILENAME中列出的那些符号,丢弃所有其他的. FILENAME是一个简单地平坦模式文件, 一个符号占一行.
这个选项在那些会逐步积累起一个大的全局符号表的系统中(比如 VxWorks)会很有用,它能有效地节约内存空间.
'--retain-symbols-file'不丢弃未定义的符号,和需要重定位的符号. 你可能在命令行上只指定'--retain-symbol-file'一次, 它覆盖'-s'和'-S'的功能.
`-rpath DIR'
为运行时库的搜索路径增加一个目录. 这个在连接带有共享库的ELF可执行文件时有用. '-rpath'的所有参数会被
连接起来传递给运行时连接器, 运行时连接器在运行时用它们定位共享对象. '
-rpath'选项在定位那些在连接参数
指定的共享对象需要的共享对象时也很有用; 参阅关于'-rpath-link'选项的描述, 如果在连接一个ELF可执行文件
时不使用'-rpath'选项,那些环境变量'LD_RUN_PATH'选项就会被使用. '-rptah'选项也可以使用在SunOS上. 缺省地,在SunOS上,连接器会从所有的'-L'选项中形成一个运行时搜索路径.
如果使用了'-rpath'选项, 那运行时搜索路径就只从'-rpath'选项中得到, 忽略'-L'选项. 这在使用GCC时非常有
用, 它会用上很多的'-L'选项,而这些路径很可能就是NFS挂上去的文件系统中.
为了同ELF的连接器兼容, 如果'-R'选面后面跟有一个目录名, 而不是一个文件名,那它也会被处理成'-rpath'选 项.
`-rpath-link DIR'
当在SunOS上使用ELF时,一个共享库可能会用到另一个共享库. 当'ld -share'把一个共享库作为一个输入文件连接 时就有可能发生这种情况.
当一个连接器在作非共享,不可重定位连接时,如果遇上这种依赖情况,它会自动定位需要的共享库,然后把它包含在
连接中, 如果在这种情况中,它没有被显式包含, 那'-rpath-link'选项指定优先搜索的一组路径名.
这个选项必须小心使用,因为它会覆盖那些可能已经被编译进共享库中的搜索路径. 在这种情况下,它就有可能使用 一个非内部的不同的搜索路径.
连接器使用下面的搜索路径来定位需要的共享库: 1. 所有由'-rpath-link'选项指定的搜索路径.
2. 所有由'-rpath'指定的搜索路径. '-rpath'跟'-rpath_link'的不同之处在于,由'-rpath'指定的路径被包含在可
执行文件中,并在运行时使用, 而'-rpath-link'选项仅仅在连接时起作用. 它只用于本地连接器.
3. 在一个ELF系统中, 如果'-rpath'和'rpath-link'选项没有被使用, 会搜索环境变量'LD_RUN_PATH'的内容.它也只 对本地连接器起作用.
4. 在SunOS上, '-rpath'选项不使用, 只搜索所有由'-L'指定的目录.
5. 对于一个本地连接器,环境变量'LD_LIBRARY_PATH'的内容被搜索. 6. 对于一个本地ELF连接器,共享库中的`DT_RUNPATH'和`DT_RPATH'操作符会被需要它的共享库搜索. 如果'DT_RUNPATH' 存在了, 那'DT_RPATH'就会被忽略.
7. 缺省目录, 常规的,如'/lib'和'/usr/lib'.
8. 对于ELF系统上的本地连接器, 如果文件'/etc/ld.so.conf'存在, 这个文件中有的目录会被搜索.
如果需要的共享库没有被找到, 那连接器会发出一条警告信息,并继续执行连接.
`-shared'
`-Bshareable'
创建一个共享库. 这个选项只在ELF, XCOFF和SunOS平台上有用。 在SunOS上,如果'-e'选项没有被使用,并在连接
中有未定义的符号,连接器会自动创建一个共享库,
`--sort-common'
这个选项告诉'ld'当它把普通符号放到相应的输出节中时按大小进行排序。排在最前面的是所有的一字节符号,然
后是所有的二字节,然后是所有的四字节, 然后是其它的。 这是为了避免因为对齐约束而在符号间产生的断裂
`--split-by-file [SIZE]'
跟'--split-by-reloc'相似,但在SIZE达到时,为每一个输入文件创建一个新的输出节。如果没有给出,SIZE缺省 地设置为1
`--split-by-reloc [COUNT]' 试图在输出文件中创建节外的节,这样就没有单个的输出节含有多于COUNT个重定位符。这在产生巨大的用于COFF格
式的实时内核的可重定位文件时非常有用;因为COFF不能在一个节中表示多于65535个重定位。 注意,这在不支持
专有节的目标文件格式中会失败,连接器不会把单个输入节分割进行重分配, 所以,如果单个输入节含有多于COUNT
个重定位符, 那一个输出节会含有同样多的可重定位符。COUNT缺省被设为32768.
`--stats'
计算并显示关于连接器操作的统计信息, 比如执行时间,内存占用等.
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库ld中文使用手册完全版(3)在线全文阅读。
相关推荐: