You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows执行cargo run时rustc/cargo异常丢失的技术求助

针对Windows 10下Cargo运行异常的解决方案

我之前在Windows下开发Rust时也踩过类似的工具链异常坑,结合你的描述,给你几个针对性的排查和修复步骤:

1. 优先更新rustup(你的版本太老旧了)

你当前的rustup是2019年的版本,很多Windows下的兼容性bug已经在新版本里修复了,这大概率是问题根源:

  • 打开管理员权限的CMD,运行:
    rustup self update
    
  • 查看当前工具链配置,确认默认工具链是stable-x86_64-pc-windows-msvc
    rustup show
    
  • 如果工具链不对,切换到正确版本:
    rustup default stable-x86_64-pc-windows-msvc
    

2. 强制修复工具链组件

有时候组件会出现损坏或安装不完整的情况,强制重装能解决这类隐性问题:

  • 重新安装stable工具链的所有组件:
    rustup toolchain reinstall stable-x86_64-pc-windows-msvc
    
  • 验证组件状态,确保cargo、rustc都是installed状态:
    rustup component list --toolchain stable-x86_64-pc-windows-msvc
    

3. 处理权限残留问题

之前卸载时的权限不足,说明可能有锁定文件或进程占用:

  • 打开任务管理器,结束所有和rustc.execargo.exerustup.exe相关的进程
  • 用管理员CMD运行卸载命令:
    rustup self uninstall
    
  • 如果还是权限报错,手动删除以下文件夹:
    • %USERPROFILE%\.cargo
    • %USERPROFILE%\.rustup
  • 清理系统环境变量中Rust相关的路径,然后重新下载最新的rustup-init.exe,用管理员权限安装,选择默认的stable-x86_64-pc-windows-msvc工具链

4. 排查项目缓存与自身问题

  • 删除项目根目录下的target文件夹(构建缓存损坏会导致各种异常),然后重新运行:
    cargo run --release --bin main
    
  • 创建一个全新的测试项目验证环境:
    cargo new test_rust_project
    cd test_rust_project
    cargo run
    
    如果新项目能正常运行,说明你原来的项目可能存在依赖冲突、多线程代码在Windows下的特殊兼容问题,需要进一步排查项目代码

5. 检查杀毒软件的拦截

Windows Defender或第三方杀毒软件可能会误拦截rust/cargo进程,导致程序提前终止:

  • 临时关闭实时保护,再次运行你的程序测试
  • 如果确认是拦截问题,把%USERPROFILE%\.cargo\bin和项目的target目录添加到杀毒软件的排除列表

补充:WSL环境正常是因为它使用的是独立的Linux版Rust工具链,和Windows的工具链完全隔离,所以不受Windows侧环境问题的影响。

内容的提问来源于stack exchange,提问作者Carlos Pereira

火山引擎 最新活动