编译StorageFactory.sol提示找不到SimpleStorage.sol问题求助
Solidity导入文件报错解决方案
对应修复步骤
- 开发环境根目录配置问题
主流合约开发框架(Hardhat/Foundry/Truffle)默认将
contracts文件夹作为合约根目录,如果你将两个合约直接放在项目根目录而非contracts子文件夹下,编译器会默认从contracts路径下检索文件,就会触发找不到的报错。
修复方案:将StorageFactory.sol和SimpleStorage.sol都移动到项目根目录下的contracts文件夹内,没有该文件夹可手动新建。 - 导入路径写法适配问题
如果你已经把文件放在了contracts文件夹下,可以替换为根目录定位的导入写法:import "contracts/SimpleStorage.sol"; - 文件名大小写校验
Linux、MacOS等系统对文件名大小写敏感,确认SimpleStorage.sol的文件名大小写和导入语句里的拼写完全一致,不要出现simpleStorage.sol、Simplestorage.sol这类大小写偏差的写法。 - 编译器缓存问题
清除开发环境的编译缓存后重新编译即可:- Hardhat执行命令:
npx hardhat clean - Foundry执行命令:
forge clean - Remix环境删除
.deps缓存文件夹后刷新页面重新编译
- Hardhat执行命令:
额外校验点
确认SimpleStorage.sol文件本身可以单独正常编译,若该文件本身存在语法错误,也可能间接引发找不到文件的报错提示。
内容的提问来源于stack exchange,提问作者DannySnacks
相关产品推荐
相关产品推荐

