boost历史版本下载:http://www.boost.org/users/history/


b2  编译大约需要20分钟...



Ubuntu 14.04.5 编译安装Boost 1.62

Ubuntu 14.04.5 编译安装Boost 1.62

Boost.Python这个组件依赖Python库
chunli@Linux:~$ sudo apt-get install python-dev

Linux系统 开发工具链 安装
chunli@Linux:~$ sudo apt-get install -y build-essential


chunli@Linux:~/boost/ wget http://101.96.10.75/ncu.dl.sourceforge.net/project/boost/boost/1.62.0/boost_1_62_0.tar.bz2

chunli@Linux:~/boost/ tar xf boost_1_62_0.tar.bz2 
chunli@Linux:~/boost/ cd boost_1_62_0/
chunli@Linux:~/boost/boost_1_62_0$ ./bootstrap.sh 
chunli@Linux:~/boost/boost_1_62_0$ echo $?
0
chunli@Linux:~/boost/boost_1_62_0$ ./b2 
chunli@Linux:~/boost/boost_1_62_0$ echo $?
0
chunli@Linux:~/boost/boost_1_62_0$ sudo ./b2 install 
chunli@Linux:~/boost/boost_1_62_0$ echo $?
0



CentOS6.6 i386 安装Boost


CentOS6.6 i386 安装Boost

[root@CentOS boost]# unzip boost_1_56_0.zip 

[root@CentOS boost_1_56_0]# ./bootstrap.sh 
[root@CentOS boost_1_56_0]# yum install -y bzip2-devel
[root@CentOS boost_1_56_0]# yum install -y python-devel

[root@CentOS boost_1_56_0]# ./b2 
[root@CentOS boost_1_56_0]# echo $?
0

[root@CentOS boost_1_56_0]# ./b2 install
[root@CentOS boost_1_56_0]# echo $?
0



树莓派安装Boost库

安装依赖包:
pi@raspberrypi:~ $ sudo apt-get install python-dev
pi@raspberrypi:~ $ sudo apt-get install -y build-essential

解压安装boost:
pi@raspberrypi:~/boost $ tar xfv boost_1_62_0.tar.bz2 
pi@raspberrypi:~/boost $ cd boost_1_62_0/
pi@raspberrypi:~/boost/boost_1_62_0 $ ./bootstrap.sh 
pi@raspberrypi:~/boost/boost_1_62_0 $ echo $?
0

编译:
pi@raspberrypi:~/boost/boost_1_62_0 $ ./b2 #耗时144分钟
pi@raspberrypi:~/boost/boost_1_62_0 $ echo $?
0

安装:
pi@raspberrypi:~/boost/boost_1_62_0 $ sudo ./b2  install #耗时4分钟
pi@raspberrypi:~/boost/boost_1_62_0 $ echo $?
0

删除临时文件:
pi@raspberrypi:~/boost/boost_1_62_0 $ cd ..
pi@raspberrypi:~/boost $ rm -rf boost_1_62_0


添加到系统,Boost安装默认在此:/usr/local/lib/
root@raspberrypi:~/boost $ echo '/usr/local/lib/' >> /etc/ld.so.conf
pi@raspberrypi:~/boost $ sudo ldconfig -v





boost测试:写一个正则表达式的测试:

pi@raspberrypi:~/boost $ vim main.cpp 
#include 
#include 
#include 
using namespace std;
int main(int argc, const char* argv[]) 
{
	if (argc != 2) 
	{
		cerr << "Usage: " << argv[0] << " regex-str" << endl;
		return 1;
	}

	boost::regex e(argv[1], boost::regex::icase);
	//mark_count 返回regex中带标记子表达式的数量。带标记子表达式是指正则表达式中用圆括号括起来的部分
	cout << "subexpressions: " << e.mark_count() << endl;

	string line;
	while (getline(cin, line)) 
	{
		boost::match_results m;
		if (boost::regex_search(line, m, e, boost::match_default)) 
		{
			const int n = m.size();
			for (int i = 0; i < n; ++i)
			{
				cout << m[i] << " ";
			}
			cout << endl;
		} 
		else 
		{
			cout << setw(line.size()) << setfill('-') << '-' << right << endl;
		}
	}
}

pi@raspberrypi:~/boost $ g++ main.cpp -lboost_regex -Wall &&./a.out 'l(i|o)ve'
subexpressions: 1
live
live i 
love
love o 
hello world
-----------
^C
pi@raspberrypi:~/boost $