第十一章 uosio.cdt

uosio.cdt概述

CDT 的英文全程是 Contract Development Toolkit,翻译成中文就是 「合约开发工具」。CDT 是专门用于编译 C++11 为 .wasm 和创建 ABI 文件的工具。

CDT 的官方网址为 https://github.com/UOSIO/uosio.cdt,当前最新的版本为 1.5.0

构建 CDT 环境

我们接下来的教程将主要使用 CDT 来构建合约和生成 ABI。

编译安装 uosio.cdt

在编译 CDT 之前,我们先要将远程代码 clone 到本地,本地 uosio.cdt 的保存位置并不重要,因为我们将在以后的步骤中将 uosio.cdt 安装为本地二进制文件。

现在,你可以将 uosio.cdt clone 到先前创建的 contracts 目录,或者你认为适合的本地系统上的任何其他位置。

clone v1.5.0 的 uosio.cdt 代码到本地的目录

https://github.com/UlordChain/uosio.cdt.git

shell
git clone --recursive https://github.com/UlordChain/uosio.cdt.git

仓库有点大,所以 clone 可能会消耗那么点时间,大约 5-30 分钟左右。

clone 完成后,然后进入uosio.cdt 目录

编译 uosio.cdt

运行下面的命令开始构建:

shell
./build.sh

构建可能需要需要一些时间,构建完成后,运行下面的命令安装

安装uosio.cdt

shell
sudo ./install.sh

上面的命令需要使用 sudo 超级用户运行,因为 uosio.cdt 的各种二进制文件将在本地安装。系统将要求您提供计算机的帐户密码。安装 uosio.cdt 将使编译后的二进制文件全局化,因此可以在任何地方访问它。

强烈建议您不要跳过 uosio.cdt 的全局安装步骤,如果不安装将使得合约编译变得困难,并且容易出现错误。

检查安装是否正确,输入以下命令查看当前的 uosio.cdt 工具的版本:

shell
uosio-cpp  --version

输出结果应该如下:

uosio-cpp version 1.5.0

合约编译示例

合约编写参见第九章的helo.cpp 的编写。

编写完以后使用 uosio-cpp 进行编译。

您可以将代码编译为Web程序集(.wasm),如下所示:

shell
uosio-cpp -o hello.wasm hello.cpp --abigen

会生成 hello.abi hello.wasm 编译后的合约文件。以后就可以使用这两个文件进行合约的发布了。

Last updated