错误:Truffle 当前使用的是 solc 0.5.16,但是您的一个或多个合约指定了“pragma solidity ^0.8.0”

问题描述

错误:Truffle 当前使用的是 solc 0.5.16,但您的一个或多个合约指定了“pragma solidity ^0.8.0”

这是错误的照片 - https://gyazo.com/2f5ea2f50cc1d4ef5eea2f21d0e04fe7

我所有的合约都使用 ^0.8.0 编译指示。我的 truffle-config 也使用与您在此处看到的相同的版本 - https://gyazo.com/1ec8b28ca48902c091004f8659cf678d

请帮忙。非常感谢。

解决方法

省略“^”。不是version:"^0.8.0"

compilers: {
       solc: {
           version: "0.8.0"  
       }

}

,

@Yilmaz 是正确的,版本需要修改。将 truffle-config.js 文件更改为正确的编译器版本。确保您有一个版本集。我有同样的错误,因为没有设置版本。如果您的文件如下所示:

compilers: {
  solc: {
    // version: "0.5.1",// 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"
    // }
}

把它改成这样:

compilers: {
  solc: {
    version: "^0.8.0"
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...