Solidity源文件需要不同的编译器版本

时间:2019-01-15 20:52:08

标签: ethereum solidity

pragma solidity ^0.5.3;

contract Inbox {

    string public message;

    function Inbox(string initialMessage) public {
         message = initialMessage;
    }

    function setMessage(string newMessage) public {
         message = newMessage;
    }

    function getMessage() public view returns (string) {
         return getMessage;
    }

}
  

错误:浏览器/Untitled.sol:3:1:ParserError:源文件需要不同的编译器版本(当前编译器为0.5.3-nightly.2019.1.15 + commit.6146c59a.Emscripten.clang-请注意,每夜构建是被认为严格小于发行版本   合同收件箱{

我使用的是正确的版本。我尝试调试并在论坛上查看,但找不到正确的解决方案。还有其他遇到相同问题的人吗?

2 个答案:

答案 0 :(得分:1)

答案直接在您收到的错误消息中:

  

请注意,每晚构建的版本严格认为要低于已发布的版本

您指定在合同中使用版本0.5.3,该版本晚于所选的编译器。要解决此问题,您可以降低到0.5.2,也可以将编译指示更改为

['1', '+', '22', '-', '3', '*', '4', '/', '5']

有关更多信息,请查看this ticket

答案 1 :(得分:0)

我建议使用solc-selecthttps://github.com/crytic/solc-select),它将允许在solc版本之间轻松切换。