在軟體工程中,gold是ELF檔案的链接器。其在2008年3月成為官方GNU軟體包並被加入至GNU Binutils中[1][2],第一次釋出是在binutils 2.19中。gold是由Ian Lance Taylor與Google的一個小團隊開發的[3]。編寫gold的動機是要製作一個比GNU連結器更快的連結器[3],特別是對於使用C++編寫的大型应用程序。
與GNU連結器不同,gold並不會使用BFD函式庫來處理目的檔。雖然這限制了其只能處理ELF的目的檔格式,但其也聲稱可以在沒有額外抽象層的情況下有更清晰且更快的實作。作者提到了完全移除BFD作為從頭開發新連結器而非逐步改進GNU連結器的原因[4]。這個重寫也修復了舊的ld的一些Bug,這些Bug以各種小問題破壞ELF檔案[5]。
要在Makefile中指定gold,可以將LD或LD环境变量設定為ld.gold
。要透過編譯器選項指定gold
,可以使用GCC選項-fuse-ld=gold
。
Fedora已將gold從binutils移轉到自己的軟體包中,因為擔心在Google的興趣轉移到LLVM後會有软件腐败的問題[6]。
參見
- 執行檔格式比較,也適用於PE/COFF (Windows)以及Mach-O (Mac OS X)格式。
參考資料
外部連結