Rust使用lld链接器作为标准吗?

5
我已经开始阅读《从零到 Rust 性能》这本书。它讨论了使用 lld 链接器而不是标准的 Rust 链接器来加速编译时间。然而,这本书现在已经有一年了,它提到正在进行工作,使 lld 成为 Rust 中尽可能标准的链接器。
有人知道这项工作的进展情况吗?Rust 是否正在使用 ldd 链接器作为标准链接器,如果没有,使用它是否仍然会显著缩短编译时间。
1个回答

11
从rust 1.70开始,lld是{arm,thumb}v4t-none-eabi工具链的默认链接器。
如果您想在1.70之前使用lld或者对于不是默认链接器的不同工具链,您可以修改您的.cargo/config.toml文件来设置rustc将使用的链接器。
[target.x86_64-pc-windows-msvc]
rustflags = ["-C", "link-arg=-fuse-ld=lld"]

[target.x86_64-pc-windows-gnu]
rustflags = ["-C", "link-arg=-fuse-ld=lld"]

[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "linker=clang", "-C", "link-arg=-fuse-ld=lld"]

-Clink-arg=参数只是将参数传递给底层的链接器(参见https://doc.rust-lang.org/rustc/codegen-options/index.html#link-arg)。如果`LINK.EXE`是特定于**GCC**和**Clang**的,那么它怎么能理解`-fuse-ld=lld`这个参数呢? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接