00. 目录

文章目录

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

01. 命令概述

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

02. 命令格式

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

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:             删除所有本地符号

04. 参考示例

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

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

05. 附录

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

【Linux】一步一步学Linux——ld命令(256)相关推荐

  1. 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么

    Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到win ...

  2. LINUX学习之路(学LINUX必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...

  3. linux学习需要什么基础,学linux需要什么基础?

    近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...

  4. 分享--linux 学习之路(学linux必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

  5. 英语不好学linux运维难吗,学Linux系统难吗?学好Linux运维需要多久

    随着近年来经济的快速发展,企业对Linux人才的需求也越来越高.许多人认为,Linux是一个非常简单的行业,然而,Linux行业是一个综合了云计算.Linux运维.Linux开发.Linux编程等多方 ...

  6. 不会linux的php难找工作,学linux系统难吗

    这是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟 ...

  7. linux lamp实验报告,新手学Linux--构建lamp

    本人前不久开始学习Linux,俗话说得好,好记性不如烂笔头,于是决定将平日所学所做实验,记录下来,以备回顾.由于本人是个初学者,所以借鉴了很多网上的资料,但在此处写出来的都是经过本人思考和多次实验的记 ...

  8. Linux——ld命令

    命令概述 ld 命令是GNU的连接器,将目标文件连接为可执行程序. 命令格式 用法:ld [选项] 文件... 常用选项 -b: 指定目标代码输入文件的格式 -Bstatic: 只使用静态库 -Bdy ...

  9. Linux其实没那么难学

    互联网技术总是更新迭代的,因为2020年的一场疫情,影响着中国乃至整个世界,就在这一年,网络直播,远程办公,在线教育等等的互联网产物进入了众多人的世界,当然,这其中离不开程序员的功劳. 李开复曾经说过 ...

最新文章

  1. 【C 语言】文件操作 ( 配置文件读写 | 框架搭建 | 写出或更新配置文件 | 读取配置文件 )
  2. 电脑忽然卡了,键盘鼠标也失灵,问题所在,如何处理?
  3. Spring MVC Rest 学习 一
  4. Python协程--迭代器
  5. River Hopscotch
  6. 计算机网络学习笔记(18. 网络应用(层)内容概述)
  7. Vue.js实现可配置的登录表单
  8. python怎么读取csv文件-python怎么读取csv文件
  9. 认知维度与API的可用性评估
  10. 索菲对讲机写频软件_万能对讲机写频软件
  11. rk3568 LTE(N720)
  12. 摄影培训社培训资料(上
  13. istio:灰度发布与AB测试
  14. c++ cv转化灰度图_OpenCV C++如何使RGB图像变为灰度图像
  15. sonarqube中 项目名称 问题
  16. 什么是用户代理样式表
  17. 数据库(day02)
  18. 大数据阿里云工具之DataWorks(一)
  19. Java学习笔记(二)JavaSE
  20. 订阅号 openid php,微信“订阅号”如何存放openid,并在其他页面使用

热门文章

  1. jquery的animate()方法也可设置非css属性
  2. 免费的SEO工具软件大全
  3. STL vector
  4. Android UI开发第二篇——多级列表(ExpandableListView)
  5. 课程设计---停车场管理系统
  6. beta 圆桌桌 4
  7. ES7和ES8的了解
  8. 收藏一下mybatis全局参数配置
  9. 写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”);...
  10. 参数传值(数组赋值)