Ubuntu下Rust Debug构建链接失败,Release及macOS构建正常求排查
解决Ubuntu下Rust Debug构建链接重定位错误
针对你遇到的R_X86_64_32重定位截断问题,这是因为GNU ld在处理大体积Debug调试信息时,默认的32位重定位空间不足导致的,以下是几种可行的解决方式:
临时禁用Debug信息构建
适合快速验证问题,执行命令:RUSTFLAGS="-C debuginfo=0" cargo build若需长期生效,可在项目根目录的
Cargo.toml中添加:[profile.dev] debuginfo = 0修改链接器参数启用64位重定位支持
通过给链接器传递参数来处理大调试信息,执行命令:RUSTFLAGS="-C link-arg=-Wl,--emit-relocs" cargo build或在
Cargo.toml中配置:[profile.dev] rustflags = ["-C", "link-arg=-Wl,--emit-relocs"]改用lld链接器
LLVM的lld链接器对大调试信息的兼容性更好,先确保系统已安装lld(Ubuntu下执行sudo apt install lld),然后执行:RUSTFLAGS="-C linker=lld" cargo build更新Rust工具链
你使用的是2023年5月的nightly版本,较旧的工具链可能存在链接器参数适配问题,更新到最新stable或nightly版本:rustup update stable # 或更新nightly rustup update nightly
内容的提问来源于stack exchange,提问作者nunam
相关产品推荐
相关产品推荐

