当我truffle compile时,它会说:"Error:未能找到与^0.8.11匹配的编译器版本“。我做了一些研究并安装了solc (npm install -g solc@0.8.11),但是它没有修复错误。
在我的智能契约中,pragma solidity ^0.8.11;在顶部声明,solcjs --version输出0.8.11+commit.d7f03943.Emscripten.clang。我的项目文件夹中还有以下内容-config.js:
module.exports = {
networks: {
//All code in here is commented out by default
},
// Set default mocha options here, use special reporters etc.
mocha: {
// timeout: 100000
},
// Configure your compilers
compilers: {
solc: {
version: "0.8.11", // Fetch exact version from solc-bin (default: truffle's version)
// docker: true, // Use "0.5.1" you've installed locally with docker (default: false)
// settings: { // See the solidity docs for advice about optimization and evmVersion
// optimizer: {
// enabled: false,
// runs: 200
// },
// evmVersion: "byzantium"
// }
}
},
}这个GitHub truffle 这里确定该问题是一个权限错误,其中Solidity无法从编译器文件夹中读取,但我拥有块菌文件夹&授予everybody read+write权限,以允许Solidity在其中找到编译器:
15:21:38 [<user>@<server>1t2:1 /usr/local/lib/node_modules]
$ ls -al
drwxr-xr-x 3 vabzbt teusers 236 Feb 22 14:51 solc
drwxr-xr-x 6 vabzbt teusers 180 Feb 21 14:42 truffle为什么特弗莱仍然找不到我安装的solc版本?我试着删除^,或者在我的语用稳健声明中将其更改为> &块菌-配置信息,但这两种方法都没有效果。fwiw,这是在一台无法连接到互联网的企业机器上,并且主要局限于repos的内部镜像&诸如此类。
发布于 2022-04-13 15:40:45
我们有办法了!
我确定这是一个代理错误,但我不知道如何解决它。当truffle compile运行时,它会出现连接互联网以获得潜在编译器版本的问题。
作为一种解决办法,您可以在https://github.com/ethereum/solc-bin/tree/gh-pages/bin下载相关的稳固版本,并将其放在~/..config/块菌/编译器/node_模块中。它无法通过npm下载solc,并将其从/usr/local/lib/node_modules移到/..config/tru显/.文件夹。
https://ethereum.stackexchange.com/questions/122294
复制相似问题