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

相关推荐
YOLOW921 小时前
两周五个版本:我用 Rust 写的 AI 数据引擎 PageSift,0.81 系列做了什么
rust
西风测评1 小时前
SSH 中文乱码的根源:locale、SendEnv 与 env 请求
rust
unconditional1 小时前
我数了下 sdkm 的源码:41 个工具的安装逻辑,四分之三是同一行
rust·开源
niyongsheng18 小时前
3D 装箱算法工程化:数据结构、放置启发式与支撑规则
数据结构·算法·rust
Hello.Reader19 小时前
tsrs 技术解析用 Rust 移植 TypeScript 7,类型检查还能怎样提速?
开发语言·rust·typescript
王仔小奶21 小时前
Rust 正在接管金融圈?深度拆解一份高薪 FinTech 岗位 JD
开发语言·金融·rust
你为她披上外套时我正站在窗外1 天前
subtitler v2.10 发布:3 个社区 PR、一个一天修掉的 issue,和关于 uuencode 的真相
rust
Thneonl1 天前
熔断不是开关是状态机:Claude Code 路由内核的 3 条红线
人工智能·rust
Thneonl1 天前
一个 Claude Code 本地代理,凭啥配了 3 个观测出口?
人工智能·rust
西风测评1 天前
终端粘贴原理:bracketed paste、4095 字节行限制与 UTF-8 分片
rust