使用源代码构建Solidity编译器
1、克隆代码库
执行以下命令,克隆源代码:
git clone --recursive https://github.com/ethereum/solidity.git
cd solidity
如果你想参与 Solidity 的开发, 你可分叉 Solidity 源码库后,用你个人的分叉库作为第二远程源:
cd solidity
git remote add personal git@github.com:[username]/solidity.git
Solidity 有 Git 子模块,需确保完全加载它们:
git submodule update --init --recursive
2、先决条件 - macOS
在 macOS 中,需确保有安装最新版的 Xcode, Xcode 包含 Clang C++ 编译器, 而 Xcode IDE 和其他苹果开发工具是 OS X 下编译 C++ 应用所必须的。 如果你是第一次安装 Xcode 或者刚好更新了 Xcode 新版本,则在使用命令行构建前,需同意 Xcode 的使用协议:
sudo xcodebuild -license accept
Solidity 在 OS X 下构建,必须 安装 Homebrew 包管理器来安装依赖。 如果你想从头开始,这里是 卸载 Homebrew 的方法。
3、先决条件 - Windows
在Windows下构建Solidity,需下载的依赖软件包:
- Git for Windows: C从Github上获取源码的命令行工具
- CMake: 跨平台构建文件生成器
- Visual Studio 2017 Build Tools: C++ 编译器
- Visual Studio 2017 (Optional) C++ 编译器和开发环境
如果你已经有了 IDE,仅需要编译器和相关的库,你可以安装 Visual Studio 2017 Build Tools。
Visual Studio 2017 提供了 IDE 以及必要的编译器和库。所以如果你还没有一个 IDE 并且想要开发 Solidity,那么 Visual Studio 2017 将是一个可以使你获得所有工具的简单选择。
这里是一个在 Visual Studio 2017 Build Tools 或 Visual Studio 2017 中应该安装的组件列表:
- Visual Studio C++ core features
- VC++ 2017 v141 toolset (x86,x64)
- Windows Universal CRT SDK
- Windows 8.1 SDK
- C++/CLI support
4、外部依赖
在 macOS、Windows和其他 Linux 发行版上,有一个脚本可以“一键”安装所需的外部依赖库。本来是需要人工参与的多步操作,现在只需一行命令:
./scripts/install_deps.sh
Windows 下执行:
scripts\install_deps.bat
5、命令行构建
确保你已安装外部依赖(见上面)
Solidity 使用 CMake 来配置构建。Linux、macOS 和其他 Unix系统上的构建方式都差不多:
mkdir build
cd build
cmake .. && make
也有更简单的:
#note: 将安装 solc 和 soltest 到 usr/local/bin 目录
./scripts/build.sh
对于 Windows 执行:
mkdir build
cd build
cmake -G "Visual Studio 15 2017 Win64" ..
这组指令的最后一句,会在 build 目录下创建一个 solidity.sln 文件,双击后,默认会使用 Visual Studio 打开。我们建议在VS上创建 RelWithDebugInfo 配置文件。
或者用命令创建:
cmake --build . --config RelWithDebInfo
如果你对 CMake 命令选项有兴趣,可执行 cmake .. -LH 进行查看。