#Rust
共 8 篇文章
程序找不到 OUT_DIR
Rust 程序依赖运行时 OUT_DIR,只在 cargo run 下成功,可能来自 Cargo 的构建环境泄漏。区分编译期嵌入与外部资源部署,不把构建机路径当运行契约。
cargo fmt 在 CI 报 cargo-fmt 未安装:为实际工具链添加 rustfmt
CI 报 cargo-fmt 未安装时,为实际选中的 Rust 工具链添加 rustfmt,核对项目覆盖与安装步骤;区分组件缺失和格式检查差异。
Rust 1.99 直接链接失败
Rust 1.99.0 在 Apple Silicon Mac 直接调用 sysroot 编译器时,rust-lld 可能找不到 libLLVM.dylib。核对启动入口、相对库路径及 rustup 子进程环境。
Cargo 没采用 target 的 runner
Cargo nightly 调整配置查找后,含点号 target 的未引号表与环境变量可能被忽略。核对工具链日期、引号表头和 runner 的实际执行入口。
Rust Option::map_or 的默认值也在闭包中使用,编译报 E0382
Option::map_or 的参数提前求值,同一向量不能既作为默认值移动,又由闭包消费。用 match 在选中分支内转移所有权,保留分支行为。
Rust read_line 读入数字后,parse 报 InvalidDigit
read_line 保留换行且追加到已有缓冲区。按输入规则处理首尾空白,匹配解析错误,并在循环读取前清空字符串。
Rust 在 for 循环前调用 collect,编译报 cannot infer type
collect 需要确定目标集合类型,类型标注不会自动消除元素引用。直接遍历 keys,或明确收集为 Vec,并按键类型处理单层与双层引用。
Rust 循环保存字符串引用时报 temporary value dropped while borrowed
Rust 跨循环保存 Option<&str> 时,引用的临时字符串可能提前释放。让 Option<String> 持有游标,在调用处用 as_deref 借用,并保留分页结束与重试语义。


