Haskell项目执行stack build报错求助:sh未找到及Cabal文件冲突
解决Stack构建时的两个错误问题
1. Cabal文件与package.yaml的冲突问题
错误提示说明你的Project.cabal被手动修改过,Stack会优先使用这个Cabal文件而忽略package.yaml。
- 如果你需要遵循老师要求使用
package.yaml:直接删除Project.cabal文件,然后重新执行stack init和stack build。 - 如果你不需要使用
package.yaml:这个提示只是告知性信息,不用处理,重点解决下面的sh找不到问题即可。
2. 找不到sh可执行文件的问题
这个错误是因为Stack依赖Unix风格的shell(sh),Windows系统默认没有这个程序。解决步骤:
- 安装Git for Windows,安装过程中确保勾选“Add Git to PATH”选项(默认通常会勾选),Git自带的
sh.exe会被加入系统路径。 - 若已安装Git但仍报错,手动将Git安装目录下的
bin文件夹(比如C:\Program Files\Git\bin)添加到系统环境变量PATH中。 - 重启你的命令行/终端窗口,让环境变量生效,之后重新运行
stack build。
内容的提问来源于stack exchange,提问作者fera_09
相关产品推荐
相关产品推荐

