Win 10 编译bitshare-core witness node
参照教程https://github.com/bitshares/bitshares-core/wiki/BUILD_WIN32。
1、先安装 visual studio 2019、git for windows、cmake、strawberry perl。
以下所有命令均需要在从开始菜单x64 Native Tools Command Prompt for VS 2019打开的CMD窗口里运行。
2、创建c:\development\cpp目录,克隆源码并编译OPENSSL。
git clone https://github.com/openssl/openssl
cd openssl
git checkout tags/OpenSSL_1_1_1b
perl ./Configure VC-WIN64A no-shared
nmake
注意不要运行nmake install,我们尽量不污染操作系统。
3、编译libcurl
git clone https://github.com/curl/curl
cd curl
git checkout tags/curl-7_64_1
biuldconf.bat
mkdir curl-build
cd curl-build
cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_USE_OPENSSL=ON -DCURL_DISABLE_FTP=ON -DCURL_DISABLE_LDAP=ON -DCURL_DISABLE_TELNET=ON -DCURL_DISABLE_DICT=ON -DCURL_DISABLE_FILE=ON -DCURL_DISABLE_TFTP=ON -DCURL_DISABLE_LDAPS=ON -DCURL_DISABLE_RTSP=ON -DCURL_DISABLE_POP3=ON -DCURL_DISABLE_IMAP=ON -DCURL_DISABLE_SMTP=ON -DCURL_DISABLE_GOPHER=ON -DCURL_STATICLIB=ON -DOPENSSL_ROOT_DIR=C:\Development\cpp\openssl ..\
cmake --build . --target libcurl --config Release
通过-DOPENSSL_ROOT_DIR=C:\Development\cpp\openssl指定OPENSSL的根目录。不要使用install 作为target,我们尽量不污染操作系统。
4、编译boost
git clone https://github.com/boostorg/boost
cd boost
git checkout tags/boost-1.69.0
git submodule update --init --recursive
bootstrap.bat
b2 --prefix=c:\Development\cpp\boost169 --toolset=msvc variant=release threading=multi address-model=64 install -j7
如果最后一条命令运行出现错误,可能需要先修过project-config.jam 文件。
import option ;
using msvc : 14.2 : "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\Hostx64\x64\cl.exe" ;
option.set keep-going : false ;
主要是第二行,确保cl.exe 的路径正确。
5、编译bitshares-core
git clone https://github.com/bitshares/bitshares-core
cd bitshares-core
git submodule update --init --recursive
cmake -G "Visual Studio 16 2019" -A x64 -DBOOST_ROOT=c:\Development\cpp\boost169 -DCURL_STATICLIB=ON -DCURL_LIBRARY="C:\Development\cpp\curl\curl-build\lib\Release\libcurl_imp.lib" -DCURL_INCLUDE_DIR="C:\Development\cpp\curl\include" -DOPENSSL_CONF_SOURCE="C:\Development\cpp\openssl\apps\openssl.cnf" -DOPENSSL_ROOT_DIR=C:\Development\cpp\openssl
cmake --build . --target all_build --config Release -j7
编译完成后的见证人节点程序witness_node.exe在C:\Development\cpp\bitshares-core\programs\witness_node\Release目录下,需要把C:\Development\cpp\curl\curl-build\lib\Release下的libcurl.dll复制到该目录,才能顺利运行。