STEEM见证人节点(witness node)编译的时候需要链接boost库,STEEM推荐的编译环境为Ubuntu 16.04,boost库用的是1.58(直接安装)。
(图源 :pixabay)
但是我穷折腾,使用的Ubuntu 18.04作为编译环境,boost库也选了最新的1.6.7,不过我取巧了一点,直接拿别的机器上编译好的boost 1.6.7过来。
但是,感觉编译出来的steem有些问题,比如关闭后在重新打开,过段时间就会出错。我并不清楚是否和boost版本有关,还是和我GCC啥的都是用的新版本有关,但是为了追新,总有机会掉坑里的。
大神建议我试试boost 1.65,于是尝试一下手工编译1.65.1,貌似不是很麻烦,但是我确实又碰到一个大坑。
步骤
下载解压
找到boost对应版本下载链接
https://sourceforge.net/projects/boost/files/boost/1.65.1/
在当前用户下使用如下命令下载
wget https://sourceforge.net/projects/boost/files/boost/1.65.1/boost_1_65_1.tar.gz
解压压缩包
tar xzvf boost_1_65_1.tar.gz
编译安装
创建目标目录
mkdir ~/opt/boost_1.65.1
进入源码目录
cd boost_1_65_1
配置,注意此处的大坑,不能用~
指定目标目录!!!
./bootstrap.sh "--prefix=~/opt/boost_1.65.1"
./bootstrap.sh "--prefix=/home/userxxxx/opt/boost_1.65.1"
编译安装
./b2 install
大坑
因为之前指定目标目录时直接用:>,编译完我看也没报错,就把源码包和目录都删掉了。./bootstrap.sh "--prefix=~/opt/boost_1.65.1"
然后编译steemd的时候出现错误,我去boost目录看,我的库文件呢?怎么啥都没有?😭
后来试了几次才发现,只有用绝对路径,文件才会复制到对应目录里,浪费我至少一个小时的时间,哎。
相关链接
- https://www.boost.org/
- https://sourceforge.net/projects/boost/
- https://www.boost.org/doc/libs/1_68_0/more/getting_started/unix-variants.html#easy-build-and-install
This page is synchronized from the post: 每天进步一点点:手工编译boost_1.65.1