首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >松露编译给分析器错误:错误解析openzeppelin-solidity/contracts/ownership/Ownable.sol

松露编译给分析器错误:错误解析openzeppelin-solidity/contracts/ownership/Ownable.sol
EN

Ethereum用户
提问于 2018-12-27 11:54:46
回答 1查看 2.1K关注 0票数 2

我在我的项目中安装了最新版本的松露、solc、node以及openzeppelin-solidity库的新版本。

将块菌-config.js更改为使用新的solc版本。我的合同是从openzeppelin图书馆继承的。现在,当我运行松露编译时,它会给出以下错误。

错误解析openzeppelin-solidity/contracts/ownership/Ownable.sol: ParsedContract.sol:8:1: ParserError:源文件需要不同的编译器版本(当前编译器为0.5.2+commit.1df8f40c.Emscripten.clang -注意,夜间构建被认为严格少于发布的版本契约所有者{^-^)

以下是我所使用的所有内容的版本:

$truffle版本Trufferv5.0.0(核心: 5.0.0)稳固性- 0.5.2 (solc-js) Node v11.4.0

$ solc -Version solc,solidity编译器命令行接口版本: 0.5.2+commit.1df8f40c.Linux.g++

openzeppelin-solidity package.json有"_from":"openzeppelin-solidity","_id":"openzeppelin-solidity@2.0.0",.版本:"2.0.0“

现在,Ownable契约使用编译器版本^0.4.24,这将是库中所有契约的情况。

知道为什么会发生这种情况,以及如何解决这个问题吗?

EN

回答 1

Ethereum用户

发布于 2018-12-27 12:27:41

当前版本的(2.0.0)依赖solc版本0.4.24。

当前版本的松露(5.0.0)依赖solc版本0.5.0。

在solc 0.4.x和solc 0.5.x之间有一些破坏性的更改。

以前版本的松露(4.1.14)依赖solc版本0.4.24。

因此,为了与松露一起使用open,在您的package.json文件中设置:

代码语言:javascript
复制
"devDependencies": {
  "truffle": "4.1.14",
  "openzeppelin-solidity": "2.0.0",
  ...
}

或者,在接下来的松露5.0.0中,您可以选择所需的solc版本。

例如,为了将块菌配置为使用solc 0.4.24,在truffle-config.js中添加以下内容:

代码语言:javascript
复制
compilers: {
    solc: {
        version: "0.4.24"
    }
}

请参阅如何将您自己的编译器版本说明中的更多细节。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/64654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档