曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 10759|回复: 0
打印 上一主题 下一主题

GNU 连接器 ld 参数简介

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2009-11-22 19:57:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
连接器 ld 用于把目标代码文件连接为可执行文件或者库文件。通过 man 可以看到 ld 有许多参数,但实际中一次不会用到许多参数。在最简单的情况下,要从汇编其生成的 *.o 的目标文件创建可执行文件,可以使用以下命令:
ld -o mytest mytest.o

下表是基于 x86 平台的命令行参数

参数
描述
-b
指定目标代码输入文件的格式
-Bstatic
只使用静态库
-Bdynamic
只使用动态库
-Bsymbolic
把引用捆绑到共享库中的全局符号
-c
从指定的命令文件读取命令
--cref
创建跨引用表
-d
设置空格给通用符号,即使指定了可重定位输出
-defsym
在输出文件中创建指定的全局符号
-demangle
在错误消息中还原符号名称
-e
使用指定的符号作为程序的初始执行点
-E
对于ELF格式文件,把所有符号添加到动态符号表
-f
对于ELF格式共享对象,设置 DT_AUXILIARY 名称
-F
对于ELF格式共享对象,设置 DT_FILTER 名称
-format
指定目标代码输入文件的格式 (和 -b 相同)
-g
被忽略。用于提供和其他工具的兼容性
-h
对于ELF格式共享对象,设置 DT_SONAME 名称
-i
执行增量连接
-l
把指定的存档文件添加到要连接的文件清单
-L
把指定的路径添加添加到搜索库的目录清单
-M
显示连接映射,用于诊断目的
-Map
创建指定的文件来包含连接映射
-m
模拟指定的连接器
-N
指定读取/写入文本和数据段
-n
设置文本段为只读
-noinhibit-exec
生成输出文件,即使出现非致命连接错误
-no-keep-memory
为内存使用优化连接
-no-warn-mismatch
允许连接不匹配的目标文件
-O
生成优化了的输出文件
-o
指定输出文件的名称
-oformat
指定输出文件的二进制格式
-R
从指定的文件读取符号名称和地址
-r
生成可重定位的输出(称为部分连接)
-rpath
把指定的目录添加到运行时库搜索路径
-rpath-link
指定搜索运行时共享库的目录
-S
忽略来自输出文件的调试器符号信息
-s
忽略来自输出文件的所有符号信息
-shared
创建共享库
-sort-common
在输出文件中不按照长度对符号进行排序
-split-by-reloc
按照指定的长度在输出文件中创建额外的段
-split-by-file
为每个目标文件在输出文件中创建额外的段
--section-start
在输出文件中指定的地址定位指定的段
-T
指定命令文件 (和 -c 相同)
-Ttext
使用指定的地址作为文本段的起始点
-Tdata
使用指定的地址作为数据段的起始点
-Tbss
使用指定的地址作为bss段的起始点
-t
在处理输入文件时显示它们的名称
-u
强制指定符号在输出文件中作为未定义符号
-warn-common
当一个通用符号和另一个通用符号结合时发出警告
-warn-constructors
如果没有使用任何全局构造器,则发出警告
-warn-once
对于每个未定义的符号只发出一次警告
-warn-section-align
如果为了对齐而改动了输出段地址,则发出警告
--whole-archive
对于指定的存档文件,在存档中包含所有文件
-X
删除所有本地临时符号
-x
删除所有本地符号
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-16 09:26 , Processed in 0.081637 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表