【介绍】
Boost库是一个开源可移植的为C++语言标准库提供扩展的一些C++程序库的总称。是C++标准化进程的开发引擎之一。
文档:http://linuxfromscratch.org/blfs/view/7.8/general/boost.html (boost_1_59_0)
文档:http://www.linuxfromscratch.org/blfs/view/svn/general/boost.html (Boost-1.70.0 )
参考:https://www.cnblogs.com/LyndonYoung/articles/5288618.html
下载:http://sourceforge.net/projects/boost/
【安装】
编译安装 Boost 1.70.0 :
目前最新版本:Boost 1.70.0
wget http://downloads.sourceforge.net/project/boost/boost/1.70.0/boost_1_70_0.tar.bz2 && tar -jxf boost_1_70_0.tar.bz2 && cd boost_1_70_0 sed -e '1 i#ifndef Q_MOC_RUN' -e '$ a#endif' -i boost/type_traits/detail/has_binary_operator.hpp ./bootstrap.sh --prefix=/usr ./b2 stage threading=multi link=shared ./b2 install threading=multi link=shared
编译安装 Boost 1.69.0 :
wget http://downloads.sourceforge.net/project/boost/boost/1.69.0/boost_1_69_0.tar.bz2 && tar -jxf boost_1_69_0.tar.bz2 && cd boost_1_69_0 sed -e '1 i#ifndef Q_MOC_RUN' -e '$ a#endif' -i boost/type_traits/detail/has_binary_operator.hpp && ./bootstrap.sh --prefix=/usr && ./b2 stage threading=multi link=shared && ./b2 install threading=multi link=shared
编译安装 Boost 1.59.0 :
MySQL5.7系列,要求boost_1_59_0。
wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.bz2 && tar -jxf boost_1_59_0.tar.bz2 && cd boost_1_59_0 sed -e '1 i#ifndef Q_MOC_RUN' -e '$ a#endif' -i boost/type_traits/detail/has_binary_operator.hpp && ./bootstrap.sh --prefix=/usr && ./b2 stage threading=multi link=shared && ./b2 install threading=multi link=shared
【版本】
查看Boost库版本:
打开文件:
/usr/include/boost/version.hpp
看到里面的Boost版本号:
#define BOOST_LIB_VERSION "1_68"
MySQL版本和Boost版本的对应关系:
在MySQL编译时,在configure配置步骤时可能会提示Boost版本不对,必须按照提示安装相应版本:
1. MySQL5.7.7要求boost_1_57_0
2. MySQL5.7.8要求boost_1_58_0
3. MySQL5.7.9之后都使用boost_1_59_0
【路径】
编译产生的boost目录将拷贝至 /usr/include/boost ,相应的库 stage/lib/ 下的所有文件将拷贝至 /usr/lib/libboost_* 。
Boost头文件路径:/usr/include/boost
Boost库文件路径:/usr/lib
比如编译 nghttp2 时:
--with-boost-libdir=/usr/lib
【卸载】
因为只是简单地拷贝头文件和库文件,所以直接删除Boost库头文件和库文件即可:
rm -rf /usr/include/boost rm /usr/lib/*boost*
【排错】
报错:fatal error: bzlib.h: No such file or directory
背景:在 Ubuntu 18 上编译安装 Boost
参考:https://www.cnblogs.com/qq952693358/p/8563048.html
Boost依赖bzlib.h尚未安装,通过以下步骤解决问题:
sudo apt-get install libboost-all-dev sudo apt-get install libbz2-dev