写这篇文章,花了良辰陆续6天时间,2个整天来写,坑全部趟过一遍了。
1)开始(windows)→设置→应用和功能→程序和功能→启用或关闭Windows功能→适用于Linux的windows子系统。
2)打开【开发者选项】,勾选开发人员模式
3)手动下载对应的linux版本: https://docs.microsoft.com/zh-cn/windows/wsl/install-manual

4)安装命令Add-AppPackage .\Ubuntu_1804.2019.522.0_x64.appx
5)这样在开始那里,就有ubuntu 18.04LTS啦,点击运行就可以啦,搞定!
6) sudo passwd root 修改密码,然后运行 su 设置新密码。更新 apt-get update
7) cd /mnt/c 这样就进入了C盘,挺方便的,真酷啊。从win10访问WSL的文件,打开Ubuntuexplorer.exe .(后面的点不要漏掉)。
8)安装依赖包

sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl
sudo apt-get install g++-mingw-w64-x86-64 mingw-w64-x86-64-dev
sudo apt-get install autoconf autogen

sudo apt update
sudo apt upgrade
sudo apt install g++-mingw-w64-x86-64
sudo apt install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl git
sudo apt install nsis
sudo apt-get install libdb++-dev


sudo add-apt-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install -y libdb4.8-dev libdb4.8++-dev

sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev
sudo apt-get install libssl-dev
sudo apt-get install libevent-dev

重要设置sudo update-alternatives --config x86_64-w64-mingw32-g++默认的mingw32 g++ compiler选项为posix
9) 详细可看
安装Berkeley DB 4.8
10)编译./configure,然后make 1小时后成功!
11)编译报错,是因为是其他系统更新了,用ubuntu的git来更新代码。才不会报not foundh: 5: ./autogen.sh的错误。参考1
12)在

cd depends
make HOST=x86_64-w64-mingw32
cd ..
./autogen.sh # not required when building from tarball
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/
make
make install DESTDIR=/mnt/c/workspace/bitcoin

之前,设置环境PATH=$(echo "$PATH" | sed -e 's/:\/mnt.*//g') 参考2
13) 我是最棒的!
14)make 19:15开始编译
15)报错checking for Berkeley DB C++ headers... no, configure: error: libdb_cxx headers missing,看了下文档,提示需要libdb5.1,参考3

cd ~
wget http://download.oracle.com/berkeley-db/db-5.1.29.NC.tar.gz
tar -xzvf db-5.1.29.NC.tar.gz
cd db-5.1.29.NC/build_unix/
../dist/configure --enable-cxx --disable-shared --with-pic --prefix=/usr/local
sudo make install

16)在Windows的vs中使用std::mutex没有问题,将代码迁移到ubuntu上后报错:'mutex' in namespace 'std' does not name a type
解决方法:加上头文件

#include <thread>
#include <mutex>
#include <unistd.h>

17)Makefile:5545: recipe for target 'libdogecoin_server_a-alert.o' failed
make[2]: * [libdogecoin_server_a-alert.o] Error 1

标签: none

添加新评论