Gold是一种用于ELF档案的链接器,于2008年3月成为官方GNU软体包并被加入至GNU Binutils中,第一次释出是在binutils 2.19中。Gold是由Ian Lance Taylor与
谷歌的一个小团队开发的,其编写的动机是要制作一个比GNU连结器更快的连结器,特别是对于使用
C++编写的大型应用程序。与
libtool连结器不同,Gold并不会使用BFD函式库来处理目的档,这限制了其只能处理ELF的目的档格式,但其也声称可以在没有额外抽象层的情况下有更清晰且更快的实作。作者提到了完全移除BFD作为从头开发新连结器而非逐步改进GNU连结器的原因。这个重写也修复了旧的ld的一些Bug,这些Bug以各种小问题破坏ELF档案。要在Makefile中指定Gold,可以将LD或LD环境变量设定为ld.gold。要透过编译器选项指定Gold,可以使用
GCC选项-fuse-ld=gold。
fedora已将Gold从binutils移转到自己的软体包中,因为担心在
谷歌的兴趣转移到
LLVM后会有软件腐败的问题。
在
软件工程领域,Gold链接器的开发是为了提供一个比传统GNU链接器更为高效的工具,尤其是在处理使用
C++编写的大型应用程序时。Gold链接器的设计理念是去除了使用BFD库来处理目标文件的依赖,这一改变虽然使得Gold只能处理ELF格式的目标文件,但也因此能够提供一个更为简洁和快速的链接过程。Gold链接器的开发团队选择从零开始构建新的链接器,而不是对现有的GNU链接器进行逐步改进,这一决策的背后是为了解决旧链接器中存在的一些导致ELF文件损坏的问题。此外,
fedora之所以将Gold链接器从binutils中独立出来作为单独的软件包,是出于对
谷歌可能会减少对Gold的支持并转向
LLVM的担忧。