在 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/