caffe 编译时build_release/lib/libcaffe.so: undefined reference to `boost::cpp_regex_traits

在 caffe安装时,出现错误:

build_release/lib/libcaffe.so: undefined reference to `boost::cpp_regex_traits<char>::toi(char const*&, char const*, int) const'

.build_release/lib/libcaffe.so: undefined reference to `boost::re_detail::get_default_error_string(boost::regex_constants::error_type)'

.build_release/lib/libcaffe.so: undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform(char const*, char const*) const'

.build_release/lib/libcaffe.so: undefined reference to `boost::re_detail::put_mem_block(void*)'

.build_release/lib/libcaffe.so: undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)'

 

按照网上的方法,改Makefile 中的LIBRARIES ,将boost_regex加入进去

还是报错,后面查看boost版本才知道,我电脑上已经安装了boost_1_65,版本太高,所以解决方法为降低版本。

 

安装步骤:

1. 下载boost安装包

到http://www.boost.org/下载boost的安装包,在这里我下载boost_1_58_0.tar.gz

解压:

tar zxvf boost_1_58_0.tar.gz

2.设置编译器和所选库

cd boost_1_58_0

运行bootstrap.sh脚本并设置相关参数:

./bootstrap.sh --with-libraries=all --with-toolset=gcc

--with-libraries指定编译哪些boost库,all的话就是全部编译,只想编译部分库的话就把库的名称写上,之间用 , 号分隔即可

--with-toolset指定编译时使用哪种编译器,Linux下使用gcc即可,如果系统中安装了多个版本的gcc,在这里可以指定gcc的版本,比如--with-toolset=gcc-4.4

3.编译boost

执行以下命令开始进行boost的编译:

./b2 --with-python include="/qp/3rd/anaconda3/include/python2.7/"

注:--with-python include="/qp/3rd/anaconda3/include/python2.7/"  一定要加上,否则后面make all时编译不过,报错Cannot find -ldboost_python

4.安装boost

最后执行以下命令开始安装boost:

./b2 install --prefix=/usr     (选这个会覆盖原先版本)

5.添加环境变量

vim ~/.bashrc

文件末尾添加:

# Boost

export BOOST_INCLUDE=/usr /include/

export BOOST_LIB=/usr/lib

 

参考:

https://blog.csdn.net/bodybo/article/details/79962814

https://blog.csdn.net/aiyi2555/article/details/101628253/

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值