示例下载网址:https://github.com/chronolaw/boost_guide
1、b2工具构建程序
为了使用b2构建应用,需要在安装Boost程序库后再安装b2程序。在Boost解压缩后的根目录下执行命令:
$cd tools/build/
$./bootstrap.sh
$sudo ./b2 install
b2默认会被安装到/usr/local/bin目录下,b2是bjam语言的解释器,它查找当前目录下的jamfile,并向上查找jamroot,解释执行其中的bjam语句,最终完成软件的构建。
2、举例说明
进入到boost_guide-master下的date_time目录下
$cd /home/lu/Test/boost_guide-master/date_time
$b2
执行b2后,会根据jamfile的内容,编译并运行程序。
输出以下内容:
...found 49 targets...
...updating 26 targets...
common.mkdir bin
common.mkdir bin/gcc-4.8
common.mkdir bin/gcc-4.8/debug
common.mkdir bin/gcc-4.8/debug/link-static
common.mkdir bin/gcc-4.8/debug/link-static/threading-multi
gcc.compile.c++ bin/gcc-4.8/debug/link-static/threading-multi/timer.o
gcc.link bin/gcc-4.8/debug/link-static/threading-multi/timer
testing.unit-test bin/gcc-4.8/debug/link-static/threading-multi/timer.passed
1000000
max timespan:2.56205e+09h
min timespan:1e-06s
now time elapsed:6.4e-05s
gcc.compile.c++ bin/gcc-4.8/debug/link-static/threading-multi/progress_timer.o
gcc.link bin/gcc-4.8/debug/link-static/threading-multi/progress_timer
testing.unit-test bin/gcc-4.8/debug/link-static/threading-multi/progress_timer.passed
0.00 s
0.00 s
0.00 s
gcc.compile.c++ bin/gcc-4.8/debug/link-static/threading-multi/progress_display.o
gcc.link bin/gcc-4.8/debug/link-static/threading-multi/progress_display
testing.unit-test bin/gcc-4.8/debug/link-static/threading-multi/progress_display.passed
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************
0% 10 20 30 40 50 60 70 80 90 100%
|----|----|----|----|----|----|----|----|----|----|
******null string # 10
*******null string # 23
**************************************
gcc.compile.c++ bin/gcc-4.8/debug/link-static/threading-multi/date1.o
gcc.link bin/gcc-4.8/debug/link-static/threading-multi/date1
testing.unit-test bin/gcc-4.8/debug/link-static/threading-multi/date1.passed
1999-Dec-312015-Jan-012001-Nov-18
2017-Apr-26
2017-Apr-26
-infinity+infinitynot-a-date-time9999-Dec-311400-Jan-01
Day of month is not valid for year
Tue
91
2
1
1
2008-Nov-20
20081120
2008-11-20
2008-Nov-20
5435
[2014-Jan-01/2014-Jan-20]gcc.compile.c++ bin/gcc-4.8/debug/link-static/threading-multi/date2.o
gcc.link bin/gcc-4.8/debug/link-static/threading-multi/date2
testing.unit-test bin/gcc-4.8/debug/link-static/threading-multi/date2.passed
Y2014 is not a leap year.
2008-Nov-01 Sat
2008-Nov-02 Sun
2008-Nov-03 Mon
2008-Nov-04 Tue
2008-Nov-05 Wed
2008-Nov-06 Thu
2008-Nov-07 Fri
2008-Nov-08 Sat
2008-Nov-09 Sun
2008-Nov-10 Mon
2008-Nov-11 Tue
2008-Nov-12 Wed
2008-Nov-13 Thu
2008-Nov-14 Fri
2008-Nov-15 Sat
2008-Nov-16 Sun
2008-Nov-17 Mon
2008-Nov-18 Tue
2008-Nov-19 Wed
2008-Nov-20 Thu
2008-Nov-21 Fri
2008-Nov-22 Sat
2008-Nov-23 Sun
2008-Nov-24 Mon
2008-Nov-25 Tue
2008-Nov-26 Wed
2008-Nov-27 Thu
2008-Nov-28 Fri
2008-Nov-29 Sat
2008-Nov-30 Sun
2026-Nov-20 is Fri
total 5 Sundays.
total 365 days of year.
You should use A bank, free days = 49
gcc.compile.c++ bin/gcc-4.8/debug/link-static/threading-multi/posix_time.o
gcc.link bin/gcc-4.8/debug/link-static/threading-multi/posix_time
testing.unit-test bin/gcc-4.8/debug/link-static/threading-multi/posix_time.passed
01:10:30.001000
01:10:30.00100002:00:10
01:10:30.001000
011030.001000
2014-Jun-08 01:00:00
2014-Jun-08 01:00:002017-Apr-26 16:13:13
2017-Apr-26 08:13:13.862225
2014-Feb-14 20:00:00
20140214T200000
2014-02-14T20:00:00
2014-Nov-03 10:00:00
2014-Nov-03 10:10:00
2014-Nov-03 10:20:00
2014-Nov-03 10:30:00
2014-Nov-03 10:40:00
2014-Nov-03 10:50:00
It's PM, ready to go home.
00:00:00.000016gcc.compile.c++ bin/gcc-4.8/debug/link-static/threading-multi/datetime.o
gcc.link bin/gcc-4.8/debug/link-static/threading-multi/datetime
testing.unit-test bin/gcc-4.8/debug/link-static/threading-multi/datetime.passed
2014年11月03日
2014年11月03日21点50分00.100000秒
2014年11月03日
0
CST
2014-Mar-06 16:00:00 CST
2014-Mar-07 04:00:00 CST
2014-Mar-06 12:00:00 PST...updated 26 targets...
lu@lu-PC:~/Test/boost_guide-master/date_time$ b2 clean
...found 1 target...
...updating 1 target...
common.Clean clean
...updated 1 target...