ld - GNU链接器(Linux手册页)中

本文详细介绍了ld链接器的各种选项,包括-N、-O、-q、-r、-s、-u等,涉及可读写文本段设置、输出优化、重定位信息保留、动态链接与静态链接等方面,旨在帮助开发者更好地理解和使用ld进行程序链接。
摘要由CSDN通过智能技术生成

-N

--omagic

将文本和数据部分设置为可读写。此外,不要对数据段进行页面对齐,并禁用链接到共享库。如果输出格式支持Unix样式幻数,请将输出标记为“OMAGIC”。注意:尽管PE-COFF目标允许使用可写文本部分,但它不符合Microsoft发布的格式规范。

--no-OMAGIC

该选项否定了-N选项的大部分影响。它将文本部分设置为只读,并强制数据段与页面对齐。注 - 此选项不启用链接到共享库。为此使用-Bdynamic

-o 输出

--output = 输出

使用output作为ld生成的程序的名称; 如果未指定此选项,则默认使用名称a.out。脚本命令“OUTPUT”也可以指定输出文件名。

-O level

如果level是大于零的数值,则ld优化输出。这可能需要更长的时间,因此可能只应为最终的二进制文件启用。此选项仅影响ELF共享库生成。链接器的未来版本可能会更多地使用此选项。目前,此选项的不同非零值的链接器行为也没有区别。这可能会随着未来的版本而改变。

-q

--emit-relocs

将重定位部分和内容保留在完全链接的可执行文件中。后链接分析和优化工具可能需要此信息才能执行可执行文件的正确修改。这导致更大的可执行文件。

目前仅在ELF平台上支持此选项。

--force-dynamic

强制输出文件具有动态部分。此选项特定于VxWorks目标。

-r

--relocatable

生成可重定位输出---即生成一个输出文件,该输出文件又可以作为ld的输入。这通常称为部分链接。作为副作用,在支持标准Unix幻数的环境中,此选项还将输出文件的幻数设置为“OMAGIC”。如果未指定此选项,则会生成绝对文件。链接C ++程序时,此选项不会解析对构造函数的引用; 要做到这一点,请使用-Ur

如果输入文件的格式与输出文件的格式不同,则仅当该输入文件不包含任何重定位时,才支持部分链接。不同的输出格式会有进一步的限制; 例如,一些基于“a.out”的格式根本不支持与其他格式的输入文件的部分链接。

此选项与

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值