Boost安裝(BCB)
===========================
boost 官方網(wǎng)站:www.boost.org
1.編譯bjam.exe
在發(fā)布包中不含bjam的可執(zhí)行文件, 因此要先進(jìn)行編譯.
假設(shè)安裝在c:\boost_1_33_1\, 則打開(kāi)命令行, 進(jìn)行c:\boost_1_33_1\tools\build\jam_src目錄:
cd /d "c:\boost_1_33_1\tools\build\jam_src", 再運(yùn)行build.dat.
由于機(jī)器上同時(shí)安裝了: VS.NET/BSD 4.0/BCB 6.0, 所以默認(rèn)執(zhí)行時(shí)它會(huì)先找VC環(huán)境,
這里我們可以通過(guò)指定編譯環(huán)境為borland. 這時(shí)由于環(huán)境變量中BSD是長(zhǎng)文件路徑,
因此在編譯過(guò)程中會(huì)提示找不到一些文件, 主要是由于路徑解析有些問(wèn)題. 我們將build.bat文件改動(dòng)一下:
找到:Start行, 它是批處理的執(zhí)行起始:
默認(rèn)是如下內(nèi)容:
: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
????)
)
更改后變成如下內(nèi)容:
===========================================================
: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
??? )
)
===========================================================
再直接執(zhí)行build.bat, 成功編譯通過(guò). 在C:\boost_1_33_1\tools\build\jam_src\bin.ntx86目錄下生成bjam.exe文件.
2.編譯boost庫(kù)文件
將C:\boost_1_33_1\tools\build\jam_src\bin.ntx86目錄下生成bjam.exe文件COPY到c:\boost_1_33_1.
進(jìn)入boost的安裝根目錄
C:\boost_1_33_1>bjam "-sTOOLS=borland" install
這個(gè)過(guò)程比較漫長(zhǎng), just wait, wait, and ... wait...^_^
在c:\Boost目錄下面將生成頭文件和庫(kù)文件的目錄.
除此之外, 還要到C:\boost_1_33_1\libs\regex\build目錄下面編譯對(duì)應(yīng)的文件, 在這里是bcb6.mak.
最后會(huì)生成libboost_regex-bcb*.lib和對(duì)應(yīng)的DLL文件. 帶iinstall參數(shù)會(huì)自動(dòng)安裝到BCB目錄里面去.
這里要注意一點(diǎn), 由于安裝腳本會(huì)自己查找borland的安裝目錄, 在我的系統(tǒng)中由于安裝了BDS和BCB,
所以它會(huì)用BDS的BCC去編譯, 這樣中間就會(huì)出現(xiàn)一些錯(cuò)誤, 這里我的解決辦法是在命令行下將BDS
從PATH中去掉.只留下BCB的環(huán)境變量.
更改:
C:\boost_1_33_1\libs\regex\build>set path=C:\WINDOWS\Microsoft.NET\Framework\v1.
1.4322\;[原來(lái)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
運(yùn)行如下命令:
C:\boost_1_33_1\libs\regex\build>make.exe -fbcb6.mak install
最后一點(diǎn)需要記得的是: 在C:\boost_1_33_1\boost\type_traits目錄(上一步生成的文件夾)下的is_enum.hpp文件中有一行出現(xiàn)錯(cuò)誤, 開(kāi)始處多了一個(gè)冒號(hào)
: ::boost::is_convertible<typename boost::add_reference<T>::type,::boost::detail::int_convertible>
將一個(gè)冒號(hào)去掉才行. 不明白作者怎么會(huì)出這種錯(cuò)誤. ^_^