关于bitcoin compile 的问题:recipe for target 'bitcoind' failed &undefined reference to `boost::this_threa
bitcoind 编译报错问题
因为研究课题是区块链,作为bitcoin为数不多的经典教材 mastering bitcoin 不可不看。
在安装bitcoin的命令行客户端的过程中,对于配置文件进行编译make 出现
我立马就蒙了,配置文件configure的过程中,显示一切正常
说明该有的库文件都已经安装好了,但是依旧显示编译报错,这个问题就比较棘手了。我之前以为是gcc版本问题,但是这个是编译到一半的报错,如果是gcc版本问题,按理说一开始就会报错,而且会明确提示版本过低的。网上查了一圈,没找到结果,于是我只能自力更生了。
问题原因与解决方案
我自己看了报错:
libbitcoin_util.a(libbitcoin_util_a-time.o): In function `boost::this_thread::sleep_for(boost::chrono::duration<long, boost::ratio<1l, 1000000000l> > const&)':
/usr/local/include/boost/thread/pthread/thread_data.hpp:258: undefined reference to `boost::this_thread::hidden::sleep_for(timespec const&)'
这不是就boost(C++的基础库)出错吗? 但我的电脑boost是有安装的,而且是最新版本
于是推断 ,也应该是编译器找不到boost 路径的问题。于是按照配置文件说明,手动添加boost安装路径
./configure --with-boost=/usr/local
make
很明显,编译直接通过的刚才的出错位置。搞定。
最后
make install
就可以了