solidity 从源代码构建
先决条件 - 所有操作系统
以下是所有 Solidity 构建的依赖项:
软件 |
笔记 |
---|---|
CMake(版本 3.13+) |
跨平台构建文件生成器。 |
Boost(Windows 上的版本 1.77+,其他系统为 1.65+) |
C++ 库。 |
用于检索源代码的命令行工具。 |
|
z3(4.8+ 版,可选) |
与 SMT 检查器一起使用。 |
cvc4(可选) |
与 SMT 检查器一起使用。 |
笔记
0.5.10 之前的 Solidity 版本可能无法正确链接到 Boost 版本 1.70+。 一种可能的解决方法是在运行 cmake 命令配置solidity 之前临时重命名<Boost install path>/lib/cmake/Boost-1.70.0
。
从 0.5.10 开始,与 Boost 1.70+ 的链接应该可以在没有人工干预的情况下工作。
笔记
默认构建配置需要特定的 Z3 版本(上次更新代码时的最新版本)。Z3 版本之间引入的更改通常会导致返回的结果略有不同(但仍然有效)。我们的 SMT 测试没有考虑到这些差异,并且可能会因与编写它们的版本不同的版本而失败。这并不意味着使用不同版本的构建是错误的。如果将-DSTRICT_Z3_VERSION=OFF
选项传递给 CMake,则可以使用满足上表中给出的要求的任何版本进行构建。但是,如果您这样做,请记住传递--no-smt
跳过 SMT 测试的scripts/tests.sh
选项。
最低编译器版本
以下 C++ 编译器及其最低版本可以构建 Solidity 代码库:
先决条件 - macOS
对于 macOS 构建,请确保您安装了最新版本的 Xcode。这包含Clang C++ 编译器、 Xcode IDE和其他在 OS X 上构建 C++ 应用程序所需的 Apple 开发工具。如果您是第一次安装 Xcode,或者刚刚安装了新版本,那么您需要同意进行命令行构建之前的许可证:
sudo xcodebuild -license accept
我们的 OS X 构建脚本使用Homebrew 包管理器来安装外部依赖项。如果您想从头开始,这里是卸载 Homebrew的方法。
先决条件 - Windows
您需要为 Solidity 的 Windows 版本安装以下依赖项:
软件 |
笔记 |
---|---|
C++ 编译器 |
|
Visual Studio 2019 (可选) |
C++ 编译器和开发环境。 |
Boost(版本 1.77+) |
C++ 库。 |
如果您已经有一个 IDE 并且只需要编译器和库,则可以安装 Visual Studio 2019 构建工具。
Visual Studio 2019 提供 IDE 和必要的编译器和库。因此,如果您没有 IDE 并且更喜欢开发 Solidity,Visual Studio 2019 可能是您轻松完成所有设置的选择。
以下是应在 Visual Studio 2019 构建工具或 Visual Studio 2019 中安装的组件列表:
-
Visual Studio C++ 核心功能
-
VC++ 2019 v141 工具集 (x86,x64)
-
Windows 通用 CRT SDK
-
Windows 8.1 SDK
-
C++/CLI 支持
我们有一个帮助脚本,您可以使用它来安装所有必需的外部依赖项:
scripts\install_deps.ps1
这将安装boost
和cmake
到deps
子目录。
克隆存储库
要克隆源代码,请执行以下命令:
git clone --recursive https://github.com/ethereum/solidity.git cd solidity
如果您想帮助开发 Solidity,您应该分叉 Solidity 并将您的个人分叉添加为第二个远程地址:
git remote add personal git@github.com:[username]/solidity.git
笔记
此方法将导致预发布版本,例如在此类编译器生成的每个字节码中设置一个标志。如果您想重新构建已发布的 Solidity 编译器,请使用 github 发布页面上的源代码 tarball:
https://github.com/ethereum/solidity/releases/download/v0.XY/solidity_0.XYtar.gz
(不是github提供的“源代码”)。
命令行构建
确保在构建之前安装外部依赖项(见上文)。
Solidity 项目使用 CMake 来配置构建。您可能想要安装ccache以加快重复构建。CMake 会自动选择它。在 Linux、macOS 和其他 Unices 上构建 Solidity 非常相似:
mkdir build cd build cmake .. && make
甚至在 Linux 和 macOS 上更简单,您可以运行:
#note: this will install binaries solc and soltest at usr/local/bin ./scripts/build.sh
警告
BSD 构建应该可以工作,但未经 Solidity 团队测试。
对于 Windows:
mkdir build cd build cmake -G "Visual Studio 16 2019" ..
如果您想使用scripts\install_deps.ps1
安装的boost版本,还需要将-DBoost_DIR="deps\boost\lib\cmake\Boost-*"
和-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
作为参数传递给cmake
调用。
这应该会导致在该构建目录中创建solidity.sln 。双击该文件应该会导致 Visual Studio 启动。我们建议构建 Release 配置,但所有其他配置都可以。
或者,您可以在命令行上为 Windows 构建,如下所示:
cmake --build . --config Release