首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【Linux】一步一步学Linux——ld命令(256)

  • 23-11-18 13:41
  • 2010
  • 6303
blog.csdn.net

00. 目录

文章目录

    • 00. 目录
    • 01. 命令概述
    • 02. 命令格式
    • 03. 常用选项
    • 04. 参考示例
    • 05. 附录

01. 命令概述

ld命令是GNU的连接器,将目标文件连接为可执行程序。

02. 命令格式

用法:ld [选项] 文件...
  • 1

03. 常用选项

-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:				删除所有本地符号
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

04. 参考示例

4.1 将test.o转成可执行程序

l[deng@localhost 1gcc]$ ld -o test test.o
ld: 警告: 无法找到项目符号 _start; 缺省为 00000000004000b0
[deng@localhost 1gcc]$ 
  • 1
  • 2
  • 3

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总

注:本文转载自blog.csdn.net的沧海一笑-dj的文章"https://blog.csdn.net/dengjin20104042056/article/details/101222241"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top