boost最新版本下载地址:
;package_id=8041
下载boost_1_39_0.tar.gz
tar -zxvf boost_1_39_0.tar.gz
然后进入解压缩后的文件夹编译boost的编译器jam
cd boost_1_39_0\tools\jam
./build_dist.sh
编译完后在这个目录下有编译出的bjam文件
boost_1_39_0\tools\jam\stage\bin.linuxx86
把它copy到boost_1_39_0 然后在这个目录下运行命令编译:
./bjam "-sTOOLS=gcc" "--includedir=/usr/include" "--libdir=/usr/lib/boost" install
开始编译,等待编译完成,需很长时间。
关于bjam的后面的参数的设置:
-sTOOLS=gcc 指定编译器为GCC
--includedir=/usr/include/ 指定头文件的安装目录,我安装在/usr/include下。如果安装成功,将在/usr/include/生成目录boost_1_33,该目录下就是boost的头文件目录
--libdir=/usr/lib/boost 指定boost的库文件的存放位置, 生成的 .a .so 文件将放在该目录下
install 编译并安装boost
最基本的测试程序:
(1)autotest.cpp
#define BOOST_AUTO_TEST_MAIN
#include
BOOST_AUTO_TEST_CASE(test)
{
BOOST_CHECK(true);
}
编译autotest.cpp
g++ autotest.cpp -L/usr/lib/boost -lboost_unit_test_framework -lboost_test_exec_monitor-gcc41-mt-1_39
(2)unitest.cpp
#include
#include
using namespace std;
using boost::unit_test::test_suite;
void force_division_by_zero()
{
BOOST_CHECKPOINT("About to force division by zero");
int i =1, j = 0;
i = i / j;
}
void infinite_loop()
{
#ifdef __unix
BOOST_CHECKPOINT("About to enter infinite loop");
while(1);
#else
BOOST_MESSAGE("Timeout support is not implemented on your platform");
#endif
}
test_suite* init_unit_test_suite(int argc,char* argv[])
{
test_suite* test = BOOST_TEST_SUITE("unit test example");
test->add(BOOST_TEST_CASE(&force_division_by_zero));
test->add(BOOST_TEST_CASE(&infinite_loop),0,2);
return test;
}
编译:
g++ unitest.cpp -L/usr/lib/boost/ -lboost_unit_test_framework
阅读(3295) | 评论(0) | 转发(0) |