解决方案,终端执行以下命令
brew unlink gettext && brew link --force gettext find /usr -name libintl* -print 2>/dev/null
参考链接 https://github.com/EOSIO/eos/issues/2028?ref=tokendaily
解决方案,终端执行以下命令
brew unlink gettext && brew link --force gettext find /usr -name libintl* -print 2>/dev/null
参考链接 https://github.com/EOSIO/eos/issues/2028?ref=tokendaily
是因为 nodeos 已经在运行了,执行
pkill nodeos
获取EOS代码 `git clone https://github.com/eosio/eos --recursive`
更新子模块 `git submodule update --init --recursive`
执行sh 自动安装 `cd eos` `./eosio_build.sh`
安装会先自动判断系统硬件是否符合安装条件及系统版本是否支持。
漫长等待,半小时左右,网络不好的话,40 - 50分钟。
编译完成后 `cd eos/build` 执行 `sudo make install` 否则会提示各种程序无法找到问题
常见问题
如果编译EOS出现以下错误
Checking for LLVM with WASM support. Installing LLVM & WASM fatal: destination path 'llvm' already exists and is not an empty directory. Unable to clone llvm repo @ https://github.com/llvm-mirror/llvm.git. Exiting now.
解决方案
cd /opt rm -rf llvm cd /tmp root@DESKTOP-H6EG47U:/tmp# rm -rf llvm-compiler/
static void inline_transfer( account_name from, account_name to, extended_asset amount, string memo = string(), permission_name perm = N(active) ) {
action act( permission_level( from, perm ), amount.contract, N(transfer), transfer{from,to,amount,memo} );
act.send();
}
解释:from,to分别是转账者,接收者。amount是一种扩展资产结构,结构内contract字段为资产属于那个合约。我们要实现内部调用EOS币转账功能,所以contranct应该设置成 N(eosio.token)
调用方式:
extended_asset amount(100,S(4,EOS));
amount.contranct = N(eosio.token);
cuurency::inline_transfer(from,to,amount);
action(
permission_level{ _self, N(active) },
N(eosio.token), N(transfer), //调用 eosio.token 的 Transfer 合约
std::make_tuple(_self, to, quantity, std::string(""))).send();