在windows上安装运行EOS
原文地址:https://steemit.com/eos/@tokenika/installing-and-running-eos-on-windows
如果你是一名windows c++开发者,你最喜欢的ide是ms visual studio,那么你可能就想知道能不能直接在windows上编译eos代码。
我们在windows c++编译器上做了几次试验,结果不行。虽然eos的代码有win32的标签,但主要的问题在于,它前后不一致。而且,windows的clang编译器和unix的clang编译器有些不同,它的限制更多。比如,像std::move(u8"env")这样的表达式在windows下是无效的。
不过,我们找到了一个替代的解决办法: Windows Subsystem for Linux,它捆绑了 Visual Studio Code ide。待会你会看到,用这个方法比直接在windows下编译代码更好。
准备工具
你需要 Windows 10, 版本1703, 也就是 Creators Update。想验证你的windows版本,你可以打开设置面板,然后进入系统>关于 进行查看。
如果你用的是更早的版本,而且不想升级到1703版,你仍然可以试一试,不过你要把你的Windows Subsystem for Linux从ubuntu 14 升级到ubuntu 16.
Windows Subsystem for Linux只能安装到系统盘。如果你的系统盘空间不够(Windows Subsystem for Linux需要3-4G的空间),那你可以使用这里的工具拓展你的系统分区。
动手
首先,我们要启动Windows Subsystem for Linux,然后在visual studio里使用bash 命令行界面。
Windows Subsystem for Linux
官方的Windows Subsystem for Linux安装指南在这里可以找到。不过,我们提供了下面的简化版本:
- 在管理员模式下(右击然后选择以管理员运行/Run as Administrator)打开PowerShell,然后执行以下命令:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- 按照提示重启计算机。
打开开发者模式
- 打开设置面板,进入升级&安全>开发者 页面
- 选择开发者模式Developer Mode单选按钮
- 如果有提示,则重启计算机。
- 打开windows 命令提示器,输入bash。接受证书协议,然后会下载一张用户模式图片,并提取到%localappdata%lxss。然后会提示你设置linux用户名和密码。当这步骤结束的时候,快捷名称Bash on Ubuntu on Windows会被加入到你的开始菜单。
使用下面任一方式启动一个新的ubuntu shell:
- 在命令提示器内输入bash,或者
- 在开始菜单里使用Bash on Ubuntu on Windows。
- 一旦你进入了linux shell,要确保你运行了ubuntu 16:
lsb_release -a
- 最后,升级 ubuntu:
sudo apt update
sudo apt full-upgrade
重装ubuntu
下面的步骤是可选的,不一定非做不可。只有在你需要从头开始,重装ubuntu的时候才需要做。
- 打开windows 命令行提示器,运行:
lxrun /uninstall /full 进行卸载
lxrun /install 进行重装
- 运行bash,启动新的ubuntu shell,然后在这个新的ubuntu shell里进行更新和升级:
sudo apt update
sudo apt full-upgrade
Visual Studio Code
从官网下载并安装visual studio code
https://code.visualstudio.com/Download 要想在visual studio code 内启用ubuntu bash 控制台,你需要修改用户设置:
- 进入 File > Preferences > User Settings ,用户>偏好设置>用户设置。
- 在右边面板里添加如下内容,覆盖掉默认设置:"terminal.integrated.shell.windows": "C:Windowssysnativebash.exe".
- 保存修改,你就可以使用Ctrl + ' 或者 View > Integrated Terminal切换到ubuntu 控制台。
你还可以添加c++拓展到visual studio code,这对c++开发有帮助。使用Ctrl + Shift + X打开拓展面板,然后添加以下拓展:
- C/C++
- C++ Intelisense
- CMakeTools
- CMake Tools Helper
- Code Runner
编译源码
在windows文件系统上为EOS创建一个workspace 文件夹。在这篇文章中,我们使用X:WorkspacesEOS,不过你可以自己决定你想在哪建这个workspace文件夹。
在linux 文件系统中,上面的地址会被映射为/mnt/x/Workspaces/EOS。它会相应地映射你设置的地址。
注意:使用分区名称的小写字母形式,比如我们使用的是/mnt/x/。
到了这一步,你就可以开始使用visual studio code的ubuntu shell了(View > Integrated Terminal)。它的主要优势是它能方便地复制黏贴。
下面的所有命令都是在ubuntu shell上运行的。
- 定义以下系统变量:
export WORKSPACE_DIR=/mnt/x/Workspaces/EOS
export EOSIO_INSTALL_DIR=${WORKSPACE_DIR}/eos
export EOS_PROGRAMS=${EOSIO_INSTALL_DIR}/build/programs
export TEMP_DIR=/tmp
注意:把x/Workspaces/EOS 替换成你设置的workspace地址。
- 把上面设置的系统变量保存到~/.bashrc文件:
echo "export WORKSPACE_DIR=${WORKSPACE_DIR}" >> ~/.bashrc
echo "export EOSIO_INSTALL_DIR=${EOSIO_INSTALL_DIR}" >> ~/.bashrc
echo "export EOS_PROGRAMS=${EOS_PROGRAMS}" >> ~/.bashrc
- 安装 cmake 和git:
sudo apt install cmake
sudo apt install git
4.从EOS代码仓库clone 源代码:
cd ${WORKSPACE_DIR}
git clone https://github.com/eosio/eos --recursive
5.现在,你就可以编译源码了。这一步可能需要几个小时时间,取决于你计算机的配置,而且,这期间会要求你确认某些动作,以及输入sudo密码。
cd ${EOSIO_INSTALL_DIR}
./eosio_build.sh
注意:由于这一步需要从多个地方下载文件,它有可能会失败。如果失败的话,就重新开始这一步。
运行
如果以上的步骤没有什么错,你就编译好了EOS代码,它生成了多个文件和可执行文件。可执行文件放在$EOS_PROGRAMS文件夹:
- nodeos: 区块链服务器节点生成组建
- cleos: 和区块链交互的接口命令
- keosd: EOS 钱包
- eosio-launcher:节点网络组成和部署的应用