Boost历史版本下载地址
http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041
bat文件,boost 1.33.1 Python 2.2.1,可能需要重新安装stl port, stl port版本有问题
::如果不要编译bjam.exe的话
rem GOTO install
cd C:\boost_1_33_1\tools\build\jam_src
pause
call build.bat
pause
copy C:\boost_1_33_1\tools\build\jam_src\bin.ntx86\bjam.exe C:\boost_1_33_1
pause
:install
rem SET INCLUDE=\"C:\\STLport-4.6.2\\stlport\";%INCLUDE%
rem SET LIB=\"C:\\STLport-4.6.2\\lib\";%LIB%
SET MSVC_ROOT="C:\Program Files\Microsoft Visual Studio\VC98"
SET VISUALC="C:\Program Files\Microsoft Visual Studio\VC98"
SET JAM_TOOLSET=VISUALC
SET PYTHON_ROOT=C:\Python22
SET PYTHON_VERSION=2.2
SET STLPORT_PATH=C:\STLport-4.6.2\lib
SET STLPORT_VERSION=4.6.2
cd c:\Program Files\Microsoft Visual Studio\VC98\bin
pause
call VCVARS32.BAT
pause
cd C:\boost_1_33_1
pause
::stage代表 lib
::msvc-stlport是msvc-stlport-tools.jam文件,可以搜索得到
::--with-thread是只编译thread库,--without-thread则相反
::比如编译thread 的lib库如下行.
rem bjam -sBOOST_ROOT=. -sTOOLS=msvc --with-thread stage
::编译所有
bjam -sBOOST_ROOT=. -sTOOLS=msvc-stlport install
bjam -sBOOST_ROOT=. -sTOOLS=msvc install
::编译regex
rem bjam -sBOOST_ROOT=. -sTOOLS=msvc-stlport --with-regex install
rem bjam -sBOOST_ROOT=. -sTOOLS=msvc --with-regex install
::编译thread
rem bjam -sBOOST_ROOT=. -sTOOLS=msvc-stlport --with-thread install
rem bjam -sBOOST_ROOT=. -sTOOLS=msvc --with-thread install
pause
exit
1、下载python-2.5.2.msi安装到C:\Python25
http://www.python.org/ftp/python/2.5.2/python-2.5.2.msi
2、下载boost_1_35_0,解压到C:\boost_1_35_0
http://sourceforge.net/project/downloading.php?group_id=7586&use_mirror=nchc&filename=boost_1_35_0.zip&48604828
3、执行C:\boost_1_35_0\tools\jam\build_dist.bat
4、生成了bjam.exe在:C:\boost_1_35_0\tools\jam\src\bin.ntx86\bjam.exe
5、拷贝bjam.exe到C:\boost_1_35_0
6、打开cmd,执行:cd C:\boost_1_35_0
7、执行bjam --toolset=msvc -sPYTHON_ROOT="{C:\Python25}" install
bjam --toolset=msvc-6.0 stdlib=stlport -sPYTHON_ROOT="{C:\Python25}" install
等待半个小时左右
8、将C:\boost_1_35_0\libs文件夹(里面是源代码,lib_source),拷贝到C:\Boost,并更改名为boost_src,这样就成了C:\Boost\boost_src
9、把C:\Boost\include\boost-1_35_0\boost,加入到VC6的Include路径,hpp也是C++的头文件啊!Boost库就是用的这个。
10、将C:\Boost\include\boost-1_35_0\boost和C:\Boost\boost_src,加入到VC6的source路径
11、把C:\Boost\lib,加入到VC6的LIB路径
12、C:\boost_1_35_0这个文件夹可以删除了,如果不想删除,那么C:\boost_1_35_0\bin.v2这个是编译时候的obj等文件,可以删除掉。
运行出现的错误
1、预定义头要加入:,D_STLP_DEBUG,__STL_DEBUG
2、ZM limit 错误:工程->设置->C/C++选项卡下面有“工程选项”的一个命令区在命令行的末尾加上/Zm1000,改为/Zm2000也行,是整百的都可以
3、“compiler is out of heap space”,\ZM改成2000(最大了)
4、“Fatal Error C1063”,这个错误是编译器栈溢出,可能是你的程序单个源文件太大了,拆分成小一些的文件试试
MSDN上:
Fatal Error C1063
compiler limit : compiler stack overflow
The program was too complex, possibly due to recursive include files. Split the code into smaller source files and recompile.
手动编译boost::regex
1、cmd;
2、cd C:\boost_1_35_0\libs\regex\build
3、vcvars32.bat
4、SET STLPORT_PATH=C:\STLport\lib(如果需要以STLPort编译的话)
5、nmake -f vc6-stlport.mak(STLPort编译)或者 nmake -f vc6.mak(普通编译)
用来测试的代码,建立一个Win32 Console Application:
#include "stdafx.h"
#include <iostream>
#include <boost/regex.hpp>
#include <boost/thread.hpp>
int main()
{
// 3 digits, a word, any character, 2 digits or "N/A",
// a space, then the first word again
boost::regex reg("\\d{3}([a-zA-Z]+).(\\d{2}|N/A)\\s\\1");
std::string correct="123Hello N/A Hello";
std::string incorrect="123Hello 12 hello";
assert(boost::regex_match(correct,reg)==true);
assert(boost::regex_match(incorrect,reg)==false);
boost::regex reg1("(new)|(delete)");
boost::smatch m;std::string s= "Calls to new must be followed by delete. \ Calling simply new results in a leak!";
if (boost::regex_search(s,m,reg1))
{ // Did new match?
if (m[1].matched)
std::cout << "The expression (new) matched!\n";
if (m[2].matched)
std::cout << "The expression (delete) matched!\n";
}
return 0;
}
如果一切顺利通过,恭喜你,boost安装成功。
1
vc 6 sp5补丁 预处理补丁
python2.2.3
stlport4.5.3
boost1.3.0.2
2
使用stlport的iostream,boost.python编译失败
如果禁用stlportt的iostream,boost.regex编译失败
选择boost1.3.0.2的原因:
从
http://engineering.meta-comm.com/boost.aspx
得知Boost-wide regression reports
vc6基本支持boost1.3.0.2 的全部库
而boost以后的版本,vc6 的表现可以说是惨不忍睹。
boost1.3.0.2支持 python2.2 stlport 4.5.3
基本就是这个样子了。