首次使用Remix进行Solidity智能合约开发时会遇到mock compiler: source not found异常信息导致无法进行编译,本篇文章带大家解决此问题。
问题现在
当编写好智能合约之后,准备进行编译操作,会发现在右边出现如下图提示:mock compiler: source not found出现此异常的主要原因就是没有设置Remix所使用的Solidity编程语言版本。再核对一下浏览器上的url是否为:https://remix.ethereum.org/#optimize=true&version=builtin。在参数中并没有指定Solidity版本信息的参数,因此导致无法进行编译。
解决方案
在右边的功能区中,选择setting,在setting下面的“Select new compiler version”中选择使用的对应版本即可。当选择完版本之后,会发现在url中自动新增了version参数。当然,如果知道具体的版本信息,也可以直接在url中添加version参数来达到同样的目的,只不过操作起来需要记住具体的版本信息。这里,选择不同的版本根据实际需要确定,不同的版本支持的语法有所不同。
低级错误导致的异常
在编写智能合约的时候,如果编译时出现类似以下的异常,请不要奇怪也不要灰心丧气,你很可能只是犯了一个很低级的错误。比如即使在照抄别人的代码的时候在某一行特别是,pragma声明那一行最后少写一个“;”,就会导致这样的异常。
-
Solidity: ParserError: Expected pragma, import directive or contract/interface/library definition.
知道了异常的原因,解决方法不言自喻,看看哪里少了一个分号。这也是最最低级最最难查的异常。