每当我试图编译solidity合约时,就会抛出错误ParserError: Source \"@OpenZeppelin/contracts/math/SafeMath.sol\" not found: File import callback not supported
。
pragma solidity ^0.7.0;
import "@OpenZeppelin/contracts/token/ERC20/ERC20.sol";
import "@OpenZeppelin/contracts/math/SafeMath.sol";
你知道是什么引起的吗?
8条答案
按热度按时间bqjvbblv1#
确保已在项目的根目录中打开VS Code。
在我的例子中,当我得到相同的错误时,我的VS代码目录看起来是这样的。
重新打开
MyContract
目录中的VS代码可修复此问题。pkwftd7m2#
我现在遇到了同样的问题,我使用truffle+node,我修正了它,将导入路径修改为相对路径,例如,
我不是100%确定为什么会发生这种情况,但我希望我帮助了你。
yqkkidmi3#
安装OpenZeppelin后,关闭IDE并重新打开它。
mm9b1k5b4#
对于某些环境,SafeMath具有不同的路径
s5a0g9ez5#
确保你安装了openzeppelin
acruukt96#
实际上,问题是solidity编译器很愚蠢,不会自动遵循路径,你必须手动指定所有允许的路径(https://docs.soliditylang.org/en/latest/using-the-compiler.html),每一个都要完全指向文件(不能只给予更高级别的文件夹),如果可以的话,使用npx hardat编译会更好
3gtaxfhh7#
什么对我有用(我使用Windows10和Visual Studio代码)-点击扩展图标-搜索solidity扩展-选择卸载按钮并点击下拉箭头-选择安装另一个版本-选择版本0. 0. 135-安装后,点击“需要重新加载”
l7mqbcuq8#
对我很有效-
更改VSCode中Solidity扩展的设置。
源代码-https://github.com/juanfranblanco/vscode-solidity/issues/178