我在第一行中得到了“源文件需要不同的编译器版本(当前编译器是0.8.6+commit.11564f7e.Emscripten.clang)”:
pragma solidity ^0.7.0;在块菌-config.js中,我设置了一个特定的编译器版本:
compilers: {
solc: {
version: "0.7.6", // Fetch exact version from solc-bin (default: truffle's version)
// docker: true, // Use "0.5.1" you've installed locally with docker (default: false)
// settings: { // See the solidity docs for advice about optimization and evmVersion
// optimizer: {
// enabled: false,
// runs: 200
// },
// evmVersion: "byzantium"
// }
}
},但我仍然得到相同的错误(在0.8.6+)。我该怎么解决这个问题?
谢谢
发布于 2021-07-09 22:34:58
我最近犯了这个错误。
之所以发生这种情况,是因为在VS代码工作区上配置的编译器版本与您想要的版本不同。
要解决这个问题,只需右键单击错误并选择选项
Solidity: Change workspace compiler version (Remote)
它将打开可用版本的下拉列表,您只需选择0.7.6。
您可以查看关于Solidity扩展存储库https://github.com/juanfranblanco/vscode-solidity/的信息。
发布于 2021-07-05 21:17:39
如果您正在导入其他合同,那么这些合同也需要支持您在主合同中使用的相同的实用可靠版本。
另一件事是块菌的问题,您使用的solc版本与运行compile命令时下载的版本不同。这以前曾发生过,但可能是问题所在。要修复它,您需要进入松露node_modules包,并在那里安装solc并提供所需的版本。或者你可以从头开始在全球范围内重新安装松露,看看它是否修复了自己。
https://ethereum.stackexchange.com/questions/102942
复制相似问题