引入rustdds crate报cc链接失败但源码构建正常如何解决
修复步骤
- 清理构建缓存
先执行命令清理损坏的增量编译缓存,再重新构建:cargo clean cargo build - 对齐rustdds依赖的特性配置
单独编译rustdds源码时使用的是其默认特性配置,你可以在Cargo.toml中显式指定依赖的特性匹配源码编译配置:
如果需要关闭不必要的系统依赖特性,也可以手动调整配置:[dependencies] rustdds = { version = "0.4.8", features = ["default"] }[dependencies] rustdds = { version = "0.4.8", default-features = false, features = ["core", "serialization"] } - 对齐Rust工具链版本
确认当前项目使用的Rust工具链版本和编译rustdds源码时使用的版本一致,执行以下命令查看当前工具链:
如果版本不一致,在项目根目录执行以下命令指定对应版本(示例为1.65.0,替换为你本地编译正常的版本):rustup showrustup override set 1.65.0 - 更换链接器
以上操作都无效的情况下,可以换用lld链接器替代默认cc链接器,在项目根目录创建.cargo/config.toml文件,写入以下内容:
保存后重新执行[build] rustflags = ["-C", "link-arg=-fuse-ld=lld"]cargo build即可。
内容的提问来源于stack exchange,提问作者xc wang
相关产品推荐
相关产品推荐

