Я собираю solc из исходников v0.4.18, но не могу не использовать его для компиляции Solidity. Как я могу решить эту проблему?

$ solc  --bin -o ./contracts SimpleStore.sol

Warning: This is a pre-release compiler version, please do not use it in product                                                                                                 ion.
SimpleStore.sol:1:1: Error: Source file requires different compiler version (cur                                                                                                 rent compiler is 0.4.18-develop.2018.12.6+commit.9cf6e910.Linux.g++ - note that                                                                                                  nightly builds are considered to be strictly less than the released version
pragma solidity ^0.4.18;
Можете ли вы предоставить директиву прагмы вашего смарт-контракта? Что-то вроде pragma solidity <version>.

Ответы (1)

похоже, вы скомпилировали ночную фиксацию, а для прагмы требуется версия 0.4.18 или более поздняя. Вы можете использовать более позднюю версию Solidity или использовать релизную версию.

Помните, что это ^0.4.18означает «0.4.18 или более поздняя версия», поэтому вы можете просто использовать более позднюю версию, и это будет более безопасно. Просто знайте, что если вы выберете версию 0.5.x, что-то может потерпеть неудачу, поскольку там происходят критические изменения, такие как переход от области видимости функции к области видимости блока.