linux目标文件链接命令,ld 命令:将目标文件链接为可执行程序 - dute.org
说明
ld 命令是二进制工具集 GNU Binutils 的一员,是 GNU 链接器,用于将目标文件与库链接为可执行程序或库文件。
语法ld [选项] [目标文件...]
选项-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:删除所有本地符号
参数目标文件:指定需要连接的目标文件
实例
链接目标文件生成可执行文件。给定 C++ 目标文件 test.o 与 main.o,生成可执行文件 mylib.out。ld /usr/lib64/crt1.o /usr/lib64/crti.o /usr/lib64/crtn.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtbegin.o /usr/lib/gcc/x86_64-redhat-linux/4.8.5/crtend.o -L/usr/lib/gcc/x86_64-redhat-linux/4.8.5 -L/usr/lib64 -L/usr/lib -lstdc++ -lm -lgcc_s -lc -lgcc main.o mylib.o -o test.out
linux目标文件链接命令,ld 命令:将目标文件链接为可执行程序 - dute.org相关推荐
- 链接器ld程序的脚本文件u-boot.lds(二)
目的:了解链接器用到的脚本文件u-boot.lds. 在开始这篇博文之前,需要先了解一些GNU linker script的基本知识,可以参考博主的另外一篇分享<GNU linker scrip ...
- Linux 命令-ld 命令
1.命令简介 ld(Link eDitor)命令是二进制工具集GNU Binutils的一员,是GNU链接器,用于将目标文件与库链接为可执行文件或库文件. 2.命令格式 ld [OPTIONS] OB ...
- 解读链接脚本ld和案例分享
链接脚本ld ld(Linker)是一个负责将目标文件和库文件链接成可执行文件或共享库的程序.在编译过程中,编译器将源代码编译成目标文件,然后ld将这些目标文件链接成可执行文件或共享库. ld的主要作 ...
- 【文件I/O】(二)文件I/O
文件I/O:系统调用 一.文件I/O基本概念 1.什么是文件I/O? 2.文件描述符 二.文件I/O函数 head.h 1.open.close(打开.关闭文件) 1.1open.close函数API ...
- 使用 ld 命令链接目标文件生成可执行文件
1.目标文件生链接成可执行文件依赖的库和目标文件 使用 ld 链接目标文件生成可执行文件,用于取代命令 g++,仅仅用于学习 ld 命令的使用,不用于实际的项目编译. 首先看一个简单的 C++ 源文件 ...
- Linux随笔2 - Linux的目录配置、文件元数据信息、符号链接与硬链接和常用文件和目录管理命令示例
目录 1. Linux的目录配置与FHS(Filesystem Hierarchy Standard) 1.1 根目录(/)的意义与内容 1.1.1 FHS要求根目录中必须存在的目录 1.1.2 FH ...
- 深入理解linux文件系统( 理解inode与block,理解硬链接软链接,掌握恢复误删文件及其分析方法,掌握用户日志及其查询命令 )
文章目录 深入理解linux文件系统 前言 inode与block详解 inode和bolck概述 1:数据(block)块: 2:元信息 : inode(索引节点) inodu的内容 Linux系统 ...
- linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...
作业一: 1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖) cat /etc/passwd /etc/group > /1.txt 2)将用户信息数据库文件和用户 ...
- 删除 linux的ln文件夹,linux下添加链接与删除链接(ln命令的用法)
添加链接使用ln命令 用法: #ln --help 用法:ln [选项]... 目标 [链接名] 或:ln [选项]... 目标... 目录 或:ln [选项]... --target-directo ...
最新文章
- kotlin定义变量
- RxPermissions的简单应用
- CentOS7安装配置DNS服务器
- JS中toFixed()方法的问题及解决方案
- 探访2019世界人工智能大会:AI应让人类生活得更幸福
- Machine Monitoring System Document
- 使用vue-amap
- 使用phpunit新建项目
- Asp.net:DataList分页技术
- java插入法排序_java算法之插入排序法
- mysql binlog ignore db_MySQL binlog_ignore_db 参数的具体使用
- 格式化文件系统命令所在目录——command not found
- Mac和Linux下测试端口是否存活一法[转载]
- Python 情人节超强技能 导出微信聊天记录生成词云
- 20190919-2 功能测试
- 深度学习三巨头也成了大眼萌,这个一键转换动画电影形象的网站「太火」了...
- 苹果手机(IOS)蓝牙相关知识【配对后蓝牙设置界面i标识】【连接参数的限制】[只以地址作为识别依据]
- Perfmon - Windows 自带系统监测工具
- STM32定时器输入捕获,脉宽测量知识点
- 笑评中国五大互联网大佬