Caffe-SSD错误:.build_release/lib/libcaffe.so: undefined reference to `boost::re_detail_106501::cpp_reg

9 篇文章 1 订阅

编译Caffe-SSD时遇到以下错误:

.build_release/lib/libcaffe.so: undefined reference to `boost::re_detail_106501::cpp_regex_traits_implementation<char>::transform(char const*, char const*) const'
.build_release/lib/libcaffe.so: undefined reference to `boost::re_detail_106501::cpp_regex_traits_implementation<char>::transform_primary(char const*, char const*) const'
collect2: error: ld returned 1 exit status
······

解决方法:
一般这种情况是由于环境中缺少boost包导致的,虽然在安装依赖包的时候可能安装,但还是重新对这个包编译以下比较好。刚开始的时候我也安装依赖包了,为了方便就没有重新编译,结果这个错误尝试了很多方法,一直无法解决。最后在即将崩溃的时候尝试了重新编译boost,这个问题竟然被解决了!!



1. boost安装包下载解压

boost安装包下载安装地址:https://www.boost.org/

我下载的是boost_1_68_0_rc1.zip版本,读者也可以自行选择版本,最后是1.60以上。
对下载的安装包进行解压:

unzip boost_1_68_0_rc1.zip

2. 设置编译器和所选库

进如解压目录:

cd boost_1_68_0

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

./bootstrap.sh --with-libraries=all --with-toolset=gcc
  • –with-libraries:指编译哪些boost库,all的话就是全部编译,只想编译部分库的话就把库的名称写上,之间用 , 号分隔即可,这里建议选择all
  • –with-toolset:指编译时使用哪种编译器,Ubuntu下使用gcc即可,如果系统中安装了多个版本的gcc,在这里可以指定gcc的版本,比如–with-toolset=gcc-5.5
    命令执行完成后看到显示如下即为成功:
Building Boost.Build engine with toolset gcc... tools/build/src/engine/bin.linuxx86_64/b2
Detecting Python version... 2.6
Detecting Python root... /usr
Unicode/ICU support for Boost.Regex?... not found.
Generating Boost.Build configuration in project-config.jam...

Bootstrapping is done. To build, run:

    ./b2

To adjust configuration, edit 'project-config.jam'.
Further information:

   - Command line help:
     ./b2 --help

   - Getting started guide: 
     http://www.boost.org/more/getting_started/unix-variants.html

   - Boost.Build documentation:
     http://www.boost.org/build/doc/html/index.html

3. 编译

在终端执行:

./b2 toolset=gcc

编译过程会持续好一会,可以喝杯茶~
编译成功会有以下提示:

...updated XXX targets...	//XXX指一个数字

4.安装

在终端执行:

./b2 install --prefix=/usr
  • –prefix=/usr:用来指定boost的安装目录,不加此参数的话默认的头文件在/usr/local/include/boost目录下,库文件在/usr/local/lib/目录下。这里把安装目录指定为–prefix=/usr则boost会直接安装到系统头文件目录和库文件目录下,可以省略配置环境变量。

安装完成会有以下界面:

...updated XXXX targets... 	//XXX指一个数字

使安装的boost库立即生效.

ldconfig    //更新系统的动态链接库

此时再回去执行以下步骤:

sudo make clean
sudo make all -j32    //这一步也许会出现其他错误,但是此错误解决
					  //如果出现其他错误,可以多make clean 和make all 几次,再不行可以查看其他解决方法。

至此,boost库编译安装完成!

参考博客:Linux编译和安装boost库

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值