【异常处理】测试risc-mini项目出现 Cannot run program “z3“ CreateProcess error=2, 系统找不到指定的文件。

文章讲述了在使用risc-mini项目时遇到的编译错误,特别是在运行ALUTest.scala测试时,由于缺少z3工具。作者详细介绍了报错原因、z3的用途以及在Ubuntu和Windows系统上的安装步骤,确保系统路径设置正确以便通过测试。

riscv-mini是UC Berkeley用Chisel编写的三级流水线RISC-V处理器,它实现了RV32I的用户级2.0版本ISA和机器级1.7版本ISA,是Berkeley著名的Rocket-chip项目的简化版

报错场景

下载risc-mini项目,sbt构建完成后,运行ALUTest.scala下的ALUArea测试,结果出现报错:
在这里插入图片描述
报错信息是说在项目目录下无法运行z3,系统找不到指定的文件。

报错分析

z3是微软的一个数学求解的工具,这里报错提示在这个目录下没有z3这个程序,所以无法运行是合理的,我们需要做的是安装z3并将其路径加入到系统变量中,然后重启电脑,再次运行测试即可通过!

解决步骤

如果是ubuntu系统,使用apt install z3即可,如果是windows,继续往下看:

  1. 下载z3
    这里下载z3,我的环境是windows64位系统,所以下载了z3-4.12.6-x64-win.zip,如图所示:在这里插入图片描述

如果你的系统是
这里需要注意,windows 64位系统要下载的是z3-4.12.6-x64-win.zip,而不是z3-4.12.6-x86-win.zip,x86版本是32位系统需要下载的。

  1. 解压z3
    下载后解压z3压缩包,可以看到bin目录下有z3.exe,我们把该路径加入到系统PATH变量中。
    在这里插入图片描述

  2. 将z3.exe所在bin目录的路径加入环境变量
    在这里插入图片描述
    加入以后重启电脑,再跑测试即可。

  3. 测试成功
    在这里插入图片描述

参考资料

  1. 我在github针对该问题上提出的issue
  2. z3的下载链接
  3. 使用pip安装z3
  4. risc-mini官方仓库
  5. 敏捷硬件开发语言Chisel与数字系统设计 这本书中对risc-mini的各部分组件做了介绍
### 解决方案 #### 文件路径验证 当遇到 `CreateProcess error=2` 错误提示时,通常意味着操作系统未能指定程序文件。应首先确认目标可执行文件的实际存在及其路径设置无误[^1]。 对于不同场景中的具体实例: - **Erlang 编译器启动失败** 若尝试通过 Intellij IDEA 启动 Erlang 编译工具而遭遇此问题,则需确保安装包内含有的 `erlc.exe` 存在于声明位置 `"D:\Erlang OTP\bin"` 下,并且该路径已被正确配置至系统的环境变量 PATH 中。 - **RISC-V 测试框架调用 Z3 失败** 针对 risc-mini 工程里 ALU 单元测试依赖于外部求解器 z3 的情况,同样要核实本地确实已部署有对应版本的 z3 可执行档,同时注意其所在目录是否被加入到项目的构建脚本或是全局环境变量中去[^2]。 - **Maven 构建 Java 应用异常** 如果是在利用 Maven 执行打包操作期间碰到了类似的错误码,那么应当仔细检查 JDK 安装地址以及相应命令行参数书写准确性;另外还需留意是否存在多版本共存干扰因素影响正常解析过程[^3]。 #### 路径修正方法 旦发现实际存在的二进制文件与预期不符——即不在默认查范围内或名称拼写有所差异——则可通过如下方式调整访问途径: 1. 更新项目属性里的解释器/编译器选项; 2. 修改 IDE 设置面板内的 SDK 或者 External Libraries 列表项; 3. 将缺失组件重新下载并放置于合适的位置后再更新相关链接关系; 4. 对于跨平台开发而言,可能还需要考虑针对特定 OS 特性的适配措施,比如 Windows 上某些软件习惯采用 `.bat` 扩展名作为批处理入口而非直接暴露 `.exe` 给用户调用。 ```bash # 添加自定义路径到PATH环境变量(Linux/MacOS) export PATH=$PATH:/path/to/additional/tools/ # 检查当前有效路径列表 echo $PATH ``` ```powershell # PowerShell环境下临时追加搜索路径(Windows) $env:Path += ";C:\path\to\additional\tools" # 查看现有路径集合 $env:Path -split ';' ``` #### 权限校验 除了上述关于物理存储层面的因素外,权限不足也可能引发此类现象的发生。因此建议适当放宽涉及对象的安全策略级别以便顺利加载所需资源。不过出于安全考量,在生产环境中实施任何变更前务必充分评估潜在风险。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民真快落

我琢磨着也没人给我打赏呀。。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值