Truffle
在松露中設置特定的編譯器版本,但仍然得到“源文件需要不同的編譯器版本”錯誤
我在第一行得到“源文件需要不同的編譯器版本(目前編譯器是 0.8.6+commit.11564f7e.Emscripten.clang)”:
pragma solidity ^0.7.0;
在 truffle-config.js 中,我設置了一個特定的編譯器版本:
compilers: { solc: { version: "0.7.6", // 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" // } } },
但我仍然得到同樣的錯誤(0.8.6+)。我該如何解決?
謝謝
我最近遇到了這個錯誤。
發生這種情況是因為在 VS Code 工作區上配置的編譯器版本與您想要的版本不同。
要解決這個問題,只需右鍵點擊錯誤並選擇選項
Solidity: Change workspace compiler version (Remote)
它將打開一個包含可用版本的下拉列表,您只需選擇 0.7.6。
您可以在 Solidity VSCode 擴展儲存庫 https://github.com/juanfranblanco/vscode-solidity/上查看此資訊
如果您要導入其他合約,這些合約也需要支持您在主合約上使用的相同 pragma solidity 版本。
另一件事是松露的問題,您使用的 solc 版本與您在嘗試執行
compile
命令時下載的版本不同。這曾經發生過,但這可能是問題所在。要修復它,您需要進入 trufflenode_modules
包並安裝solc
所需的版本。或者您可以從頭開始在全球範圍內重新安裝松露,看看它是否會自行修復。