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

相关推荐
小灰灰搞电子1 小时前
Rust可以取代C++么?
开发语言·c++·rust
百锦再3 小时前
京东云鼎入驻方案解读——通往协同的“高架桥”与“快速路”
android·java·python·rust·django·restful·京东云
异步思考者6 小时前
Rust实战:一个内存消息队列的 Trait 驱动开发
rust
受之以蒙8 小时前
智能目标检测:用 Rust + dora-rs + yolo 构建“机器之眼”
人工智能·笔记·rust
熬了夜的程序员8 小时前
【Rust学习之路】第 0 章:理解 Rust 的核心哲学
开发语言·学习·rust
EniacCheng8 小时前
【RUST】学习笔记-环境搭建
笔记·学习·rust
禅思院8 小时前
在win10上配置 Rust以及修改默认位置问题
开发语言·前端·后端·rust·cargo·mingw64·cargo安装位置
shandianchengzi9 小时前
【记录】Rust|Rust开发相关的7个VSCode插件的介绍和推荐指数(2025年)
开发语言·vscode·rust
JPX-NO9 小时前
Rust + Rocket + Diesel构建的RESTful API示例(CRUD)
开发语言·rust·restful
林太白9 小时前
Rust01-认识安装
开发语言·后端·rust