无法在 VSCode 中更改 solc 编译器版本
Cannot change solc compiler version in VSCode
我在尝试使用 brownie 进行编译时在 VSCode 中遇到此错误。我知道这个错误是由于我的一个文件中的 pragma solidity 版本与我的编译器不同:
PS C:\Users\me\Documents\Code\Blockchain\brownie_fundme> brownie compile
INFO: Could not find files for the given pattern(s).
Brownie v1.18.1 - Python development framework for Ethereum
Compiling contracts...
Solc version: 0.8.13
Optimizer: Enabled Runs: 200
EVM Version: Istanbul
CompilerError: solc returned the following errors:
ParserError: Source file requires different compiler version (current compiler is 0.8.13+commit.abaa5c0e.Windows.msvc) - note that nightly builds are considered to be strictly less than the released version
--> C:/Users/me/.brownie/packages/smartcontractkit/chainlink-brownie-contracts@1.1.1/contracts/src/v0.6/vendor/SafeMathChainlink.sol:2:1:
|
2 | pragma solidity ^0.6.0;
| ^^^^^^^^^^^^^^^^^^^^^^^
我已尝试使用 Juan Blanco 的 'Solidity' VSCode 扩展将我的编译器版本更改为“更改 global/workspace 编译器版本(远程) ",选择版本 0.6.0。 (我确认这会将 "solidity.compileUsingRemoteVersion": "v0.6.0+commit.6c089d02"
添加到我的 settings.json)。
但是当我再次 运行 brownie compile
时,我仍然得到同样的错误:
"...ParserError: 源文件需要不同的编译器版本(当前编译器是 0.8.13+commit.abaa5c0e.Windows.msvc)。 .”,显示我的编译器版本没有变化。
(我将默认编译器设置为远程,并且在进行这些更改后我还尝试重新启动所有打开的终端。)
我用pip安装了solcx,在我的“C:/Users/me”目录下也有一个.solcx文件夹,里面有一个文件夹“solc-v0.8.13”。我尝试删除该文件夹并再次编译,但布朗尼自动下载了相同的 v0.8.13。
我对如何更改全局或工作区编译器版本感到困惑。 solc 的版本是否会被我的 VSCode 设置以外的其他地方覆盖?
将以下 brownie-config.yaml
文件添加到您的项目中:
compiler:
solc:
version: 0.6.12
当您 compile
时,brownie 将从配置中下载 solc
版本。
我在尝试使用 brownie 进行编译时在 VSCode 中遇到此错误。我知道这个错误是由于我的一个文件中的 pragma solidity 版本与我的编译器不同:
PS C:\Users\me\Documents\Code\Blockchain\brownie_fundme> brownie compile
INFO: Could not find files for the given pattern(s).
Brownie v1.18.1 - Python development framework for Ethereum
Compiling contracts...
Solc version: 0.8.13
Optimizer: Enabled Runs: 200
EVM Version: Istanbul
CompilerError: solc returned the following errors:
ParserError: Source file requires different compiler version (current compiler is 0.8.13+commit.abaa5c0e.Windows.msvc) - note that nightly builds are considered to be strictly less than the released version
--> C:/Users/me/.brownie/packages/smartcontractkit/chainlink-brownie-contracts@1.1.1/contracts/src/v0.6/vendor/SafeMathChainlink.sol:2:1:
|
2 | pragma solidity ^0.6.0;
| ^^^^^^^^^^^^^^^^^^^^^^^
我已尝试使用 Juan Blanco 的 'Solidity' VSCode 扩展将我的编译器版本更改为“更改 global/workspace 编译器版本(远程) ",选择版本 0.6.0。 (我确认这会将 "solidity.compileUsingRemoteVersion": "v0.6.0+commit.6c089d02"
添加到我的 settings.json)。
但是当我再次 运行 brownie compile
时,我仍然得到同样的错误:
"...ParserError: 源文件需要不同的编译器版本(当前编译器是 0.8.13+commit.abaa5c0e.Windows.msvc)。 .”,显示我的编译器版本没有变化。
(我将默认编译器设置为远程,并且在进行这些更改后我还尝试重新启动所有打开的终端。)
我用pip安装了solcx,在我的“C:/Users/me”目录下也有一个.solcx文件夹,里面有一个文件夹“solc-v0.8.13”。我尝试删除该文件夹并再次编译,但布朗尼自动下载了相同的 v0.8.13。
我对如何更改全局或工作区编译器版本感到困惑。 solc 的版本是否会被我的 VSCode 设置以外的其他地方覆盖?
将以下 brownie-config.yaml
文件添加到您的项目中:
compiler:
solc:
version: 0.6.12
当您 compile
时,brownie 将从配置中下载 solc
版本。