Mac环境下执行yarn hardhat test遇HH501错误:无法下载0.5.16编译器
解决Hardhat无法下载solc 0.5.16的问题
针对yarn hardhat test时出现的Error HH501: Couldn't download compiler version 0.5.16错误,且solc-select install 0.5.16无效、不想用HTTP代理的情况,可尝试以下方案:
方案1:手动下载solc放入Hardhat缓存目录
- 获取solc官方发布的0.5.16版本二进制文件,选择匹配你操作系统的版本(如linux-amd64、macosx-amd64、windows-amd64)
- 定位Hardhat的solc缓存目录:
- Linux/macOS:
~/.cache/hardhat-nodejs/compilers/solc/0.5.16/ - Windows:
C:\Users\<你的用户名>\AppData\Local\hardhat-nodejs\Cache\compilers\solc\0.5.16\
- Linux/macOS:
- 若目录不存在则手动创建,将下载的二进制文件放入后,按系统要求重命名:
- Linux:
solc-linux-amd64 - macOS:
solc-macosx-amd64 - Windows:
solc-windows-amd64.exe
- Linux:
- 重新运行
yarn hardhat test,Hardhat会直接读取缓存中的编译器
方案2:在Hardhat配置中指定本地solc路径
- 将solc 0.5.16二进制文件下载到本地任意目录,Linux/macOS下需执行
chmod +x solc-0.5.16赋予执行权限 - 修改
hardhat.config.js,添加compilerPath字段指定本地solc路径:module.exports = { solidity: { version: "0.5.16", settings: { optimizer: { enabled: true, runs: 200 } }, compilerPath: "/home/your-user/solc-0.5.16" // Windows下用类似"C:\\solc-0.5.16.exe"的格式 } }; - 保存配置后重新执行测试命令
方案3:修复solc-select的安装问题
- 手动下载solc 0.5.16二进制文件,放入solc-select的artifacts目录:
- Linux/macOS:
~/.solc-select/artifacts/0.5.16/ - Windows:
C:\Users\<你的用户名>\.solc-select\artifacts\0.5.16\
- Linux/macOS:
- 将目录内的文件重命名为
solc(Windows下为solc.exe) - 执行
solc-select use 0.5.16,再运行solc --version确认版本切换成功 - 此时重新执行
yarn hardhat test,Hardhat会优先使用solc-select配置的编译器
内容的提问来源于stack exchange,提问作者John Targaryen
相关产品推荐
相关产品推荐

