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

11
5个回答

11

省略掉 "^"。不是 version:"^0.8.0"

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

2
谢谢,显式版本声明解决了问题! - Tali Oat
1
谢谢!现在的版本是 ==> 版本:"0.8.11", - M E S A B O

3

请在truffle-config.js文件中取消此行的注释:

compilers: {
  solc: {
    version: "0.8.10",  // <-- this one
    .
    .
    ...

2

@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"
}

1
如果您正在使用Windows,请将“truffle.js”文件名更改为“truffle.config.js”,并在您的Truffle配置文件中添加以下代码行(如果不存在)。
  compilers: {
solc: {
  version: "0.8.0" 

请确保在version:"0.8.0"中不使用"^"符号。
}
  }

0

将编译器选项放置在下面的module.exports;中,就像下面这样。

module.exports = {
  compilers: {
    solc: {
      version: "0.8.6"
    }
  },
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接