rust疑难杂症

rust疑难杂症解决

边碰到边记录,后续可能会逐步增加,备查

  • cargo build时碰到 Blocking waiting for file lock on package cache
    原因是Cargo 无法获取对包缓存的文件锁,
    有时vscode中项目比较多,如果其中某些库应用有问题,rust-analylzer转圈圈的时候容易碰到这个情况。

如果确定没有其他程序占用,执行以下命令(或者暂停rust-analyzer,或者把有问题的项目移出vscode)

rm -rf ~/.cargo/.package-cache

执行之后就可以cargo build了。

  • 编译时有时会有很多警告,影响观察输出结果

    如果要忽略这些警告,可以在main.rs最上部增加以下代码,

    #!allow(dead_code) // 忽略因未使用的代码而产生 "dead code" 警告

    #!allow(unused_variables) // 忽略未使用的变量而产生 "unused variable" 警告

    #!allow(unused_assignments) // 忽略未使用的赋值操作而产生 "unused assignment" 警告

    #!allow(unused_attributes) // 忽略未使用的属性指令而产生 "unused attribute" 警告

    或者

    RUSTFLAGS="-Awarnings" cargo build

  • 有时编译很老的项目时,默认的新的编译器和老的rust库产生不兼容问题

    比如有一次编译一个老项目,项目引用的第三方库引用了老版的socketaddr.rs

    使用cargo build时报错了:

    cannot transmute between types of different sizes, or dependently-sized types

    mem::transmute::<SocketAddrV4, sockaddr_in>(v4);(SocketAddrV4和sockaddr_in定义不同)

    解决方法(使用特定的老版本rust编译项目):

    rustup toolchain install 1.50.0

    cargo +1.50.0 build 或者 rustup run 1.50.0 cargo build

相关推荐
k4m7v2pz13 小时前
rvs(rust-verb-shell):一款面向人类和 AI Agent 的结构化 Shell
rust·shell·基建·rust-verb-shell·verb-noun
CappuccinoRose20 小时前
Rust学习文档(二)
开发语言·后端·学习·rust
Ivanqhz21 小时前
Rust 自引用结构(Self-Referential Structure)
rust
Yeauty1 天前
你那条 ffmpeg 命令,一键翻成 Rust builder 代码
开发语言·rust·ffmpeg
程序员爱钓鱼1 天前
Rust Option 详解:安全处理“可能存在,也可能不存在”的值
前端·后端·rust
带娃的IT创业者2 天前
重新定义前端构建速度:深度解析 SWC 如何用 Rust 颠覆 JavaScript 工具链
前端·javascript·rust·前端构建·swc
Yeauty2 天前
用 Whisper 转录前,你不用再离开 Rust
开发语言·rust·ffmpeg·音视频·视频
程序员爱钓鱼2 天前
Rust HashMap 详解:键值存储、查询、更新与统计
后端·面试·rust
doiito2 天前
【AI 应用】从“外国人味”到地道中文:kokoroi-rs v0.1.2 架构升级深度解析
ai·rust·系统设计
Zwarwolf3 天前
Rust零散知识点项目汇总
开发语言·rust