rust 即使指定了`linker=lld-link`,`cargo`也使用`x86_64-w 64-mingw 32-ld`

utugiqy6  于 11个月前  发布在  Go
关注(0)|答案(1)|浏览(106)

我试图在稳定的Rust中构建一个UEFI二进制文件,所以我不使用x86_64-unknown-uefi目标,因为它需要Nightly工具链。为此,我创建了.cargo/config.toml

[build]
target = "x86_64-pc-windows-gnu"

[target.x86_64-pc-windows-gnu]
rustflags = [
    "-C", "link-args=/nologo /nxcompat /nodefaultlib /entry:efi_main /subsystem:efi_application",
    "-C", "code-model=large",
    "-C", "prefer-dynamic=n",
    "-C", "no-redzone=y",
    "-C", "panic=abort",
    "-C", "linker=lld-link",
]

字符串
在我的本地机器上构建成功,但在GitHub Actions(log)上失败。即使我指定lld-link作为链接器,x86_64-w64-mingw32-ld仍然被使用。
如何强制cargo使用lld-link

o75abkj4

o75abkj41#

你试过在[target.x86_64-pc-windows-gnu]表下添加linker = "lld-link"吗?或者,尝试CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER="lld-link" cargo build。这应该会强制在整个依赖链中使用它。

相关问题