Solc

v0.4.22 solc 編譯失敗 - 不可預測的行為

  • September 12, 2018

錯誤:

Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.
 function CappedCrowdsale(uint256 _cap) public {
 ^ (Relevant source part starts here and spans across multiple lines).
not valid for functions.oc tag @dev
Compilation failed. See above.

當我的代幣合約沒有使用新約定時,我得到了同樣的錯誤constructor()

奇怪的是,在我將代合約切換到新約定之後,編譯器很高興。第二天它做了同樣的事情,打破並抱怨我的眾籌契約沒有使用新的約定。(奇怪的是它前一天沒有抱怨這個)這是上週。我通過切換到constructor().

現在我git pull在我的筆記型電腦上做了 a 今天繼續工作,現在它對繼承契約的建構子呼叫不滿意,CappedCrowdsale.

function CappedCrowdsale(uint256 _cap) public { ^ (Relevant source part 
starts here and spans across multiple lines).
   not valid for functions.oc tag @dev

Google搜尋沒有發現任何有用的東西。而我自己的故障排除並沒有產生任何積極的結果。我不是 100% 確定constructor導致此錯誤的約定,因為它只是被棄用了。但也許與此相關?

not valid for functions.oc tag @dev Compilation failed. See above.- 讓我一無所知

編輯:我已經重新啟動了我的電腦,現在編譯沒有給出任何關於constructor約定的警告。只有上面的 1 個線性錯誤。上週這發生在我的桌面上。今天在我的筆記型電腦上。

編輯 x2:將問題縮小到筆記型電腦。相同的程式碼庫在我的桌面上執行沒有問題。也許需要更新/重新安裝一些東西?當我弄清楚時會更新。這些警告與編譯失敗是分開的、不相關的。

@dev&@title標籤需要尾隨字元。正如伊斯梅爾所說

休息: @dev

作品: @dev constructor

我還沒有弄清楚的奇怪的事情是我的兩台機器之間的區別。兩者都是 Windows 10。我的筆記型電腦是引發錯誤的。我的桌面沒有。

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