Boost安装(BCB)
===========================
boost 官方网站:www.boost.org
1.编译bjam.exe
在发布包中不含bjam的可执行文件, 因此要先进行编译.
假设安装在c:\boost_1_33_1\, 则打开命令行, 进行c:\boost_1_33_1\tools\build\jam_src目录:
cd /d "c:\boost_1_33_1\tools\build\jam_src", 再运行build.dat.
由于机器上同时安装了: VS.NET/BSD 4.0/BCB 6.0, 所以默认执行时它会先找VC环境,
这里我们可以通过指定编译环境为borland. 这时由于环境变量中BSD是长文件路径,
因此在编译过程中会提示找不到一些文件, 主要是由于路径解析有些问题. 我们将build.bat文件改动一下:
找到:Start行, 它是批处理的执行起始:
默认是如下内容:
:Start
set
BOOST_JAM_TOOLSET
=
REM If no arguments guess the toolset;
REM or
if
first argument
is
an option guess the toolset;
REM otherwise the argument
is
the toolset to use.
if
"
_%1_
"
==
"
__
"
(
call :Guess_Toolset
if
not errorlevel
1
goto
Setup_Toolset
)
else
(
call :Test_Option
%
1
if
not errorlevel
1
(
call :Guess_Toolset
if
not errorlevel
1
goto
Setup_Toolset
)
else
(
setlocal
&
endlocal
set
BOOST_JAM_TOOLSET
=%
1
shift
goto
Setup_Toolset
)
)
更改后变成如下内容:
===========================================================
:Start
REM set BOOST_JAM_TOOLSET=
set BOOST_JAM_TOOLSET=borland
REM set BOOST_JAM_TOOLSET_ROOT="C:\PROGRA~1\Borland\CBuild6"
set BOOST_JAM_TOOLSET_ROOT="C:\PROGRA~1\Borland\BSD\4.0\Bin"
REM If no arguments guess the toolset;
REM or if first argument is an option guess the toolset;
REM otherwise the argument is the toolset to use.
if "_%1_" == "__" (
if "_%BOOST_JAM_TOOLSET%_" == "__" (
call :Guess_Toolset
if not errorlevel 1 goto Setup_Toolset
) else (
goto Setup_Toolset
)
) else (
call :Test_Option %1
if not errorlevel 1 (
call :Guess_Toolset
if not errorlevel 1 goto Setup_Toolset
) else (
setlocal & endlocal
set BOOST_JAM_TOOLSET=%1
shift
goto Setup_Toolset
)
)
===========================================================
再直接执行build.bat, 成功编译通过. 在C:\boost_1_33_1\tools\build\jam_src\bin.ntx86目录下生成bjam.exe文件.
2.编译boost库文件
将C:\boost_1_33_1\tools\build\jam_src\bin.ntx86目录下生成bjam.exe文件COPY到c:\boost_1_33_1.
进入boost的安装根目录
C:\boost_1_33_1>bjam "-sTOOLS=borland" install
这个过程比较漫长, just wait, wait, and ... wait...^_^
在c:\Boost目录下面将生成头文件和库文件的目录.
除此之外, 还要到C:\boost_1_33_1\libs\regex\build目录下面编译对应的文件, 在这里是bcb6.mak.
最后会生成libboost_regex-bcb*.lib和对应的DLL文件. 带iinstall参数会自动安装到BCB目录里面去.
这里要注意一点, 由于安装脚本会自己查找borland的安装目录, 在我的系统中由于安装了BDS和BCB,
所以它会用BDS的BCC去编译, 这样中间就会出现一些错误, 这里我的解决办法是在命令行下将BDS
从PATH中去掉.只留下BCB的环境变量.
更改:
C:\boost_1_33_1\libs\regex\build>set path=C:\WINDOWS\Microsoft.NET\Framework\v1.
1.4322\;[原来BDS的位置去掉]C:\PROGRA~1\Borland\CBUILD~1\Bin;C:\PROGRA~1\Borland\CBUILD~1\Projects\B
pl;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program File
s\Common Files\Compuware
运行如下命令:
C:\boost_1_33_1\libs\regex\build>make.exe -fbcb6.mak install
最后一点需要记得的是: 在C:\boost_1_33_1\boost\type_traits目录(上一步生成的文件夹)下的is_enum.hpp文件中有一行出现错误, 开始处多了一个冒号
: ::boost::is_convertible<typename boost::add_reference<T>::type,::boost::detail::int_convertible>
将一个冒号去掉才行. 不明白作者怎么会出这种错误. ^_^