GNU ld 2.14连接器选项详解:兼容与行为变化

需积分: 49 3 下载量 174 浏览量 更新于2024-08-06 收藏 392KB PDF 举报
GNU LD 是GNU工具链中的一个重要组成部分,专门用于动态链接和静态链接,负责将目标程序和共享库整合成可执行文件。在GNU LD 2.14版本中,该连接器引入了一些关键功能和变化,以适应不同系统的兼容性和安全性需求。 1. **连接器行为更改**:在2.14版本之前,连接器默认会尝试连接未知输入文件,但在新版本中,这一行为被改为拒绝,以提高安全性。如果用户希望恢复旧的行为,可以使用`--accept-unknown-input-arch`选项。 2. **兼容性选项**: - `-assert KEYWORD`:此选项主要用于与SunOS兼容,实际在连接过程中被忽略。 - `-Bdynamic`或`-dy`:在支持共享库的平台上,这是默认行为,指示连接器连接动态链接库。可以多次使用该选项来影响后续的`-l`选项。 - `-Bgroup`:在动态节的'DT_FLAGS_1'入口上设置标志,限制运行时连接器只在共享库的组内搜索,需要`--no-undefined`作为隐式设置。 - `-Bstatic`、`-dn`或`-non_shared`、`-static`:这些选项表示不连接共享库,同样是为了兼容性,可以通过多次使用影响`-l`选项。 - `-Bsymbolic`:创建共享库时,将全局符号引用绑定到共享库中的定义,防止重载,仅限于支持共享库的ELF平台。 3. **检查节地址**:`--check-sections`和`--no-check-sections`选项控制连接器在分配节地址后是否检查地址重叠。默认情况下,连接器会检查以避免内存冲突,但使用这些选项可以关闭此检查。 4. **文档与许可证**:本文档是关于GNU LD 2.14的中文手册,遵循GNU自由文档许可证,提供了连接器的详细使用指南,包括但不限于介绍、引言和操作细节。 5. **目录结构**:手册分为多个章节,如概述、引言等,每个章节深入探讨了连接器的不同方面,包括但不限于连接器的工作原理、命令选项的解释和应用场景示例。 总结来说,GNU LD 2.14版本的更新着重于增强安全性、兼容性和灵活性,同时提供了详细的文档以帮助用户理解和使用。理解这些选项和行为变化对于有效利用和管理链接过程至关重要。