在BCB2007(SP3)上安装最新的Boost 1.34.1

作者:waiting4you 

1. 准备工作:

boost 1.34.1,写这篇文章时它的最新版本
boost-build 2.0-m12,写这篇文章时它的最新版本(其实这个boost里已经带了,不过我总是喜欢用最新版的:-P)
bcbboost-1_34_1-5_9_2-0.2, 写这篇文章时它的最新版本
 

2.设置编译参数

在控制台下执行 bcc32看看是什么BCB的版本先,我装了SP3及12月更新版后是 CodeGear C++ 5.93
解压 boost 1.34.1, 比如解压在 d:/boost_1_34_1
解压 bcbboost-1_34_1-5_9_2-0.2,并覆盖到 d:/boost_1_34_1里的同名文件夹下。注意,这个压缩包里的目录结构是: / bcbboost/boost/boost, / bcbboost/boost/libs, / bcbboost/boost/tools,应该是把 /bcbboost/boost/下的 boostlibstools目录解压覆盖到d :/boost_1_34_1里。
如果你的BCB版本和我一样是 5.93版,得改个东西:
解压 boost-build 2.0-m12, 比如解压在 d:/boost-build
        用 d:/boost_1_34_1/tools/build/v2里的 user-config.jam替换 d:/boost-build下的(这个文件是 bcbboost里解压出来的,所以请按顺序做)。用记事本打开,找到 #using borland : 5.9.2 :…这行,去掉前面的 #号,改成 正确的版本号并把后面的 路径改成你的BCB2007的安装路径,它用的是 反斜杆。我的是这样子的:
using borland : 5.9.3 : "E:/PROGRA~1/CodeGear/RADSTU~1/5.0/bin/bcc32" : <cxxflags>-ID:/src/spirit/boost ;
强烈建议使用 短路径名,尤其是针对有空格的路径名(象/program files/...这种)
进入 d:/boost-build/jam_src,打开编辑 build.bat。 找到 :Start这行(应该是在 186行),把原来的:
:Start
set BOOST_JAM_TOOLSET=
set BOOST_JAM_ARGS=
 
REM If no arguments guess the toolset;
改成:
:Start
set BOOST_JAM_TOOLSET=borland
set BOOST_JAM_TOOLSET_ROOT="E:/PROGRA~1/CodeGear/RADSTU~1/5.0/bin"     (注意是短路径名)
set BOOST_JAM_ARGS=
goto Setup_Toolset
 
REM If no arguments guess the toolset;
 

3.       编译bjam

运行上一步修改过的 build.bat, 大约10几秒钟后在它的下一级文件夹 bin.ntx86里就有了一个 bjam.exe
 

4.       编译boost

复制这个 bjam.exed:/boost_1_34_1下,在控制台模式下进入此文件夹,输入 bjam --build-dir=d:/bb --toolset=borland stage
现在如果没出什么错误的话大家就可以出去打打球,逛逛街,泡泡MM什么的,反正时间很长,我是在晚上编译的,也没去算时间,呵呵
       编译完成后 d:/bb目录下是一大堆编译过程文件,可以删除的。我们需要的lib和dll文件都安静地躺在 d:/boost_1_34_1/stage/lib里呢。
 

5.       测试

新建控制台程序,工程属性里添加 d:/boost_1_34_1到Include路径,添加 d:/boost_1_34_1/stage/lib到library路径,代码:
#include  < iostream >
#include 
< string >
#include 
< boost / regex.hpp >
using   namespace  std;
using   namespace  boost;
int  main( int  argc,  char *  argv[])
{
    
try{
        
string src_str("Sat Jan 12 11:07:08 2008");
        
string regexstr("(.*) (.*) (.*) (.*) (.*)");
        
string rep_str("$5-$2-$3 $4 $1");
        
string results;
        results
=regex_replace(src_str,regex(regexstr),rep_str);
        cout 
<< results << endl;
    }

    
catch(runtime_error &e)
    
{
        cout 
<< e.what() << endl;
    }

    system(
"pause");
}

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值