Компилирую вот по этому ману.
Вылетает такая ошибка:
[ 25%] Building CXX object libsolidity/CMakeFiles/solidity.dir/codegen/CompilerUtils.cpp.o
/home/dar/solidity/libsolidity/codegen/CompilerUtils.cpp: В функции-члене «void dev::solidity::CompilerUtils::convertType(const dev::solidity::Type&, const dev::solidity::Type&, bool, bool, bool)»:
/home/dar/solidity/libsolidity/codegen/CompilerUtils.cpp:788:3: ошибка: this statement may fall through [-Werror=implicit-fallthrough=]
}
^
/home/dar/solidity/libsolidity/codegen/CompilerUtils.cpp:790:2: замечание: here
default:
^~~~~~~
cc1plus: все предупреждения считаются ошибками
make[2]: *** [libsolidity/CMakeFiles/solidity.dir/build.make:543: libsolidity/CMakeFiles/solidity.dir/codegen/CompilerUtils.cpp.o] Ошибка 1
make[1]: *** [CMakeFiles/Makefile2:275: libsolidity/CMakeFiles/solidity.dir/all] Ошибка 2
make: *** [Makefile:130: all] Ошибка 2
Что могло пойти не так?
Скорее всего, у вас включён флаг -Werror. Его можно отключить целиком (найти поиском в CMakeList), или отключить конкретную проверку, добавив -Wno-error=implicit-fallthrough к флагам компиляции. Ну или можно подправить исходники, чтобы для каждого case был свой break.
Кроме того, если я правильно понял, это только на gcc-7 работает, разработчики добавили флаг в основном в связи с добавлением в C++17 атрибута [[fallthrough]]. Из-за этого добавление -Wno-error=implicit-fallthrough приведет к сбою для более старых версий gcc.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники