You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenZeppelin ERC721合约执行truffle compile时override关键字解析报错

问题原因

你遇到的报错是Solidity版本和OpenZeppelin合约版本不匹配导致的:

  • override关键字是Solidity 0.6.8版本才正式引入的语法特性,低于该版本的编译器无法识别这个关键字,就会抛出「期望得到'{'却遇到保留关键字override」的解析错误
  • 目前最新版的@openzeppelin/contracts(4.x及以上)要求Solidity版本 >=0.8.0,而你代码里声明的Solidity版本为^0.6.0,版本不适配就会触发该错误

解决方案

你可以任选一种方案修复:

方案1:降级OpenZeppelin到适配Solidity 0.6的版本

执行以下命令安装最后一个支持Solidity 0.6的OpenZeppelin版本:

npm install @openzeppelin/contracts@3.4.2

安装完成后重新执行truffle compile即可正常编译。

方案2:升级Solidity版本适配最新OpenZeppelin

  1. 修改合约代码开头的版本声明为:
pragma solidity ^0.8.0;
  1. 打开项目根目录下的truffle-config.js,找到编译器配置段,修改solc版本匹配0.8.x:
compilers: {
  solc: {
    version: "^0.8.20", // 选任意0.8系列的稳定版本即可
  }
}
  1. 保存修改后重新执行truffle compile即可。

内容的提问来源于stack exchange,提问作者Matinshoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 13:12:00