Forge编译报错:权限被拒绝(os error 5),重映射配置无误
修复步骤
1. 统一路径分隔符
报错路径混用了正斜杠/和反斜杠\,这会导致Windows下权限识别异常:
- 打开项目根目录的
remappings.txt,将所有路径的反斜杠\替换为正斜杠/ - 或者执行命令自动生成规范的重映射:
forge remappings > remappings.txt
2. 以管理员身份运行终端
即使文件权限已设置,MinGW终端可能需要管理员权限才能访问依赖目录:
- 右键点击MinGW终端图标,选择「以管理员身份运行」,进入项目目录后再执行
forge build
3. 重新拉取依赖包
依赖包克隆时可能出现权限异常,重新拉取可解决:
rm -rf lib/chainlink-brownie-contracts forge install smartcontractkit/chainlink-brownie-contracts --no-commit
4. 关闭Windows受控文件夹访问
实时防护关闭后,受控文件夹访问仍可能阻止Forge操作:
- 打开「Windows安全中心」→「病毒和威胁防护」→「管理设置」→「受控文件夹访问」,关闭该功能,或把
forge.exe(路径一般为~/.foundry/bin/forge.exe)添加到允许列表
报错日志(中文翻译)
DELL@Zinny-Bestowed MINGW64 ~/solidity-course/foundry-f23/foundry-fund-me-f23 (main)
$ forge build
[⠃] 编译中...2025-08-31T10:33:45.139897Z ERROR foundry_compilers_artifacts_solc::sources: error="C:/Users/DELL/solidity-course/foundry-f23/foundry-fund-me-f23/lib/chainlink-brownie-contracts\contracts/src/v0.8/shared/interfaces": 访问被拒绝。(os error 5)
[⠊] 编译中...
错误: 解析文件失败: "C:/Users/DELL/solidity-course/foundry-f23/foundry-fund-me-f23/lib/chainlink-brownie-contracts\contracts/src/v0.8/shared/interfaces": 访问被拒绝。(os error 5); 请检查配置的重映射
--> C:/Users/DELL/solidity-course/foundry-f23/foundry-fund-me-f23/src\FundMe.sol
chainlink-brownie-contracts/contracts/src/v0.8/shared/interfaces
内容的提问来源于stack exchange,提问作者Ezinne nwoke




