You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stack无法识别Criterion.Main导入,执行脚本报错求助

问题解决步骤

1. 解决stack --resolver lts-11.10 script --optimize的"Missing: FILE"错误

这个错误是因为你漏写了要运行的作业文件名,script子命令必须明确指定要处理的Haskell文件。正确命令应该是:

stack --resolver lts-11.10 script --optimize fib2.hs

2. 解决添加shebang后执行stack fib2.hs的报错

你写的shebang不完整,Stack脚本的shebang需要在紧接着的下一行用--开头的注释声明Stack参数,正确的文件开头格式如下:

#!/usr/bin/env stack
-- stack --resolver lts-11.10 script --optimize
import Criterion.Main
-- 你的作业代码...

另外,stack fib2.hs不是运行脚本的正确方式:

  • 类Unix系统(Linux/macOS):给文件加上可执行权限后直接运行./fib2.hs;
  • Windows系统:shebang支持有限,直接用上述完整的stack script命令运行更稳妥。

至于"Executable named sh not found on path"的报错,多是Windows环境下缺少类Unix shell环境(比如Git Bash、WSL)导致的。要么安装Git Bash并将其sh路径加入系统PATH,要么直接放弃shebang,用完整stack script命令运行。

3. 解决import Criterion.Main无法识别的问题

指定lts-11.10 resolver后,Stack会自动下载对应版本的Criterion包(该resolver版本包含此包),无需手动更新cabal或单独安装依赖,用上述正确的stack script命令运行即可自动处理依赖。

内容的提问来源于stack exchange,提问作者Am Akkaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 03:52:34