linux命令ld怎么用?linux ld命令详解

在 Linux 系统中,ld 命令是 GNU 链接器(GNU Linker) 的主要工具,它的主要作用是将多个目标文件(.o 文件)、库文件(.a 或 .so 文件)以及其他输入文件组合在一起,生成一个可执行文件或共享库。

虽然大多数开发者直接使用 gcc 或 g++ 进行编译链接,但了解 ld 对于深入理解程序构建过程、调试链接错误以及进行底层开发非常有用。

每天一个Linux命令-chown
加载中
每天一个Linux命令-chown

基本语法

ld [选项] 输入文件...

常用选项

linux命令ld怎么用?linux ld命令详解

选项 说明
-o <输出文件> 指定输出文件的名称(默认通常为 a.out)
-l<库名> 链接指定的共享库或静态库(-lm 链接数学库)
-L<路径> 指定库文件的搜索路径
-T <脚本> 使用指定的链接脚本(Linker Script)
-r 可重定位输出(用于生成中间目标文件)
-s 从输出文件中移除所有符号表信息
-static 强制链接静态库
-shared 创建共享库(.so 文件)
--verbose 显示链接过程中的详细信息
--help 显示帮助信息

使用示例

示例 1:链接两个目标文件生成可执行文件

假设有两个源文件 main.c 和 utils.c:

# 1. 编译为目标文件
gcc -c main.c -o main.o
gcc -c utils.c -o utils.o
# 2. 使用 ld 链接
ld main.o utils.o -o myprogram

⚠️ 注意:直接使用 ld 链接可能会缺少 C 运行时库(如 crt0.o、libc 等),导致运行时错误,通常推荐使用 gcc 来自动处理这些依赖。

示例 2:链接标准库(如数学库)

ld main.o -lm -o myprogram

这里 -lm 表示链接数学库 libm.so。

示例 3:创建共享库

# 编译为位置无关代码(PIC)
gcc -c -fPIC utils.c -o utils.o
# 链接为共享库
ld -shared utils.o -o libutils.so

示例 4:使用链接脚本

链接脚本允许开发者精确控制内存布局、段(section)分配等。

linux命令ld怎么用?linux ld命令详解

ld -T custom_linker_script.ld main.o -o myprogram

ld 与 gcc 的区别

特性 ld gcc
角色 纯链接器 编译器驱动(包含预处理、编译、汇编、链接)
运行时库 不自动链接 C 标准库(libc) 自动链接必要的运行时库(如 crt1.o, libc.so)
易用性 需要手动指定所有依赖和入口点 自动处理大多数细节
适用场景 底层开发、嵌入式系统、自定义链接流程 日常 C/C++ 开发

常见问题与注意事项

❌ 错误:undefined reference to 'main'

  • 原因:未指定入口点或目标文件未包含 main 函数。
  • 解决:确保有一个包含 int main() 的目标文件,并使用 -e main 指定入口点(如果需要):
    ld -e main main.o utils.o -o myprogram

❌ 错误:

linux命令ld怎么用?linux ld命令详解

cannot find -lc

  • 原因:ld 不知道去哪里找 C 标准库。
  • 解决:使用 gcc 代替 ld,或手动指定库路径:
    ld main.o -lc -o myprogram

✅ 推荐做法

除非你有特殊需求(如嵌入式开发、操作系统内核开发),否则建议始终使用 gcc 或 g++ 进行链接,因为它们会自动处理 C 运行时环境、初始化代码和库依赖。


查看链接信息

你可以使用 readelf 或 objdump 查看 ld 生成的文件信息:

# 查看 ELF 文件头
readelf -h myprogram
# 查看符号表
readelf -s myprogram
# 查看段信息
readelf -l myprogram

  • ld 是 GNU 链接器,用于将目标文件和库组合成可执行文件或共享库。
  • 它不提供 C 运行时支持,需手动处理依赖。
  • 日常开发推荐使用 gcc/g++,它们在底层调用 ld 并自动处理复杂链接过程。
  • 对于高级用户,ld 提供了强大的链接脚本和精细控制能力。

如需进一步了解,可运行 man ld 查看完整手册。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/linux%e5%91%bd%e4%bb%a4ld%e6%80%8e%e4%b9%88%e7%94%a8%ef%bc%9flinux-ld%e5%91%bd%e4%bb%a4%e8%af%a6%e8%a7%a3/

赞 (0)
linux如何安装jstack?jstack命令怎么用
上一篇 2026年7月10日 04:21
Linux UltraEdit怎么破解?UltraEdit永久激活码免费获取
下一篇 2026年7月10日 04:24

相关推荐

  • 像淘宝服务器要多少钱,服务器租用价格贵吗?

    像淘宝这样体量的服务器投入,年成本通常在数千万到数亿元级别,但如果你是做中小型电商,完全没必要照搬,云服务器+高防方案的起步月成本可以控制在几百到几千元,很多人一搜“淘宝服务器多少钱”,脑子里浮现的是那个每秒处理几十万订单的庞然大物,淘宝的服务器成本不是一个固定数,而是由业务规模、技术架构、容灾级别三个变量决定……

    2026年10月14日
    100
  • 二十万配服务器要多少钱?,企业级高配服务器报价

    二十万预算采购服务器,核心答案:裸机采购约需15万至20万,若含托管与网络部署,整体预算在18万至25万之间,具体取决于配置、品牌与部署方式,二十万不是小数目,这个预算已经能撑起一家中等规模公司的核心IT架构,或者为云服务商、IDC机房提供一台高密度计算节点,本文将从配置逻辑、采购渠道、部署成本三个维度拆解这笔……

    相关资讯 2026年10月2日
    000
  • 三平服务器修理到底多少钱,服务器维修价格一般多少钱?

    三平服务器修理多少钱?核心结论是:故障检测费通常在100-300元之间,简单维修(如电源、风扇)约200-500元,主板级维修则可能达到800-2000元甚至更高,具体价格取决于故障类型、服务器品牌、配件成本以及你是否选择持牌服务商,如果你正面临服务器宕机、数据无法读取或硬件告警灯常亮的问题,最关心的往往是两个……

    2026年10月17日
    200
  • 华为云服务器2TB多少钱一个月,怎么收费?

    实例规格是计算资源的核心成本华为云弹性云服务器有多个规格族,通用型、计算型、内存型、存储型等,对于搭配2TB数据盘的场景,通用型或存储型实例更常见,以通用型2核4G为例,按需计费每小时约0.3元,包年包月折算后每月约100-200元,如果选择4核8G,费用翻倍,实例规格越高,每小时单价越高,直接影响月度总价,2……

    2026年7月23日
    300
  • QQ飞车手游现在还有多少服务器,怎么查看自己在哪个区?

    《QQ飞车手游》当前活跃服务器总数在20余个区间浮动,且已从早期60余个区服的分散格局整合为以手Q、微信双大区为核心的稳定架构,这款国民级竞速游戏经历了多轮合区与架构升级,服务器数量并非固定值,而是随运营策略动态调整,本文基于行业公开数据与玩家社区共识,为你梳理当前真实的服务器生态,服务器数量变迁:从百花齐放到……

    2026年10月19日
    200
  • 搜狐邮箱pop3服务器地址是多少,收不到邮件怎么办?

    搜狐邮箱的POP3服务器地址是pop3.sohu.com,使用SSL加密时端口为995;SMTP服务器地址为smtp.sohu.com,SSL端口465,两个地址是配置任何邮件客户端的核心参数,无论你使用Outlook、Foxmail还是手机自带邮件应用,填对它们才能正常收发邮件,搜狐邮箱POP3设置详细步骤O……

    2026年8月26日
    800
  • 宁波网络服务器租用多少钱一个月,宁波服务器托管哪家便宜?

    宁波网络服务器的实际成交价并不固定,入门配置年付普遍在几百元,中小企业常用配置年付约一两千到四五千元,高配独立服务器月付可能从三四百元到上千元不等,选对持牌服务商,比单纯比价更重要,哪些因素在影响宁波网络服务器的价格宁波作为长三角重要节点城市,本地机房资源与华东骨干网接入条件,直接影响服务器成本,价格并不是一个……

    2026年9月16日
    100
  • 徐州H3C机架式服务器多少钱一台,哪个型号性价比高?

    在徐州,一台H3C机架式服务器的采购成本根据配置不同,从数千元到数万元不等;若选择租赁或托管方案,每月费用可低至数百元,同时享受专业运维服务,H3C机架式服务器价格核心影响因素硬件配置:价格差异的主因H3C机架式服务器主流型号包括R4900系列、R6900系列等,配置覆盖入门到高端,处理器(Intel至强系列……

    2026年8月5日
    500
  • 新建一套服务器到底需要多少钱,配置价格怎么算?

    新建一套服务器多少钱新建一套服务器并没有一个固定的报价,根据配置和部署方式的不同,成本从几千元到数十万元不等,如果是搭建一套能支撑中小型业务的生产环境,目前主流方案的整体花费通常在3万到10万元之间,这个范围覆盖了硬件采购、机房托管、带宽以及基础运维的全部初期投入,要弄清楚具体预算,得先拆解价格的构成,先算硬件……

    2026年8月30日
    500
  • 服务器人数超过多少人合适,网站高并发量标准是多少?

    服务器人数没有固定上限,一台中等配置的云服务器通常能支撑数百到数千人同时在线,最终结果由硬件配置、软件架构、网络线路三方共同决定,如果业务规模继续扩大,通过负载均衡和多机部署,这个上限还能推到数万甚至更高,与其纠结某个具体人数,不如理解背后的计算逻辑,服务器能承载多少人?不存在统一答案网上搜索“服务器人数超过多……

    2026年10月13日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注