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>
將一個冒號去掉才行. 不明白作者怎么會出這種錯誤. ^_^