Solidity

已解決:如何更改 Solidity linter索爾克___s這lCsolcVisual Studio Code 中的編譯器版本?

  • January 30, 2022

在此處輸入圖像描述 嗨,我可以知道如何在 Visual Studio Code(vscode)中更改我的 Solidity linter 編譯器版本嗎?OR Visual Studio 程式碼如何指定solidity 編譯器版本?

我安裝的唯一與 Solidity 相關的擴展是 Juan Blanco 的 solidity 0.0.38 和 beaugunderson 的 Solidity Extended 3.0.2。

我在 VS Code 中應用了使用者設置,如下所示,但仍然出現錯誤:

{"files.autoSave": "afterDelay",
 "files.autoSaveDelay": 1000,
 "editor.minimap.enabled": false,
 "editor.tabSize": 2,
 "editor.detectIndentation": false,
 "editor.wordWrap": "on",
 "files.associations": {
   "*.sol": "solidity"
 },
 "workbench.iconTheme": "material-icon-theme",
 "material-icon-theme.showUpdateMessage": false,

 "solidity.compileUsingRemoteVersion" : "latest",
 "solidity.linter":"solium",
 "solidity.packageDefaultDependenciesContractsDirectory": "contracts",
 "solidity.packageDefaultDependenciesDirectory": "node_modules",
 "solidity.soliumRules": {
   "imports-on-top": 0,
   "variable-declarations": 0,
   "no-inline-assembly": 5,
   "indentation": ["error",2],
   "quotes": ["error","double"]
 },
 "solidity.validationDelay": 1000,

 if in Windows system:
 "terminal.integrated.shell.windows":"C:\\WINDOWS\\System32\\cmd.exe",
 "window.zoomLevel":1

現在我還在我的 Linux 中全域安裝了 Solidity: $ sudo npm install -g solc 然後我從終端得到了這個:/home/userXYZ/.npm-global/bin/solcjs -> /home/userXYZ/。 npm-global/lib/node_modules/solc/solcjs + solc@0.4.22

然後更改使用者設置:“solidity.compileUsingRemoteVersion”:“latest”

然後重新啟動VS Code,我仍然收到此錯誤…請幫助。謝謝

如果您仍然對 VS Code 中的版本有疑問,這對我有用:

solc在本地或全域安裝特定版本:npm i -g solcnpm i solc.

在本地 VSCode 設置中添加此設置:.vscode/settings.json

{
   "solidity.compileUsingRemoteVersion": "v0.7.4+commit.3f05b770",
   "solidity.enableLocalNodeCompiler": false
}

就我而言,我正在使用solidity v0.7.4. 還要注意其他配置:"solidity.enableLocalNodeCompiler": false

假設您使用 VS 程式碼並擁有由 Juan Blanco 維護的官方 Solidity 擴展(可在此處找到)。該擴展是官方的,因為它是ethereum.org推薦的唯一擴展。

該擴展提供了一種非常簡單的切換編譯器的方法:

  1. 在任何 *.sol 文件中,右鍵點擊並按“更改工作區編譯器版本(遠端)”。
  2. 選擇你的編譯器。

就是這樣。

在此處輸入圖像描述

引用自:https://ethereum.stackexchange.com/questions/46158