我的环境是VC.Net 2003+stlport 4.62和mingw 3.41,操作系统为windows 2003,boost解压缩在c:\opt\boost。
boost库一共有10个库需要编译,其他的都只需要直接将头部文件包含就可以了。
从sourceforege的boost项目下下载bjam.bin.ntx86.zip,这个也可以自己编译的。我将其直接解压缩到c:\windows\system32下了。
首先设置(保证和你的实际上情况一致,没有python则不要设置了)
set PYTHON_ROOT=c:\python
PYTHON_VERSION=2.4
在解压缩产生的根目录下直接编译。在这里将讲述如何编译mingw,vc-7_1,vc-7_1-stlport。
编译mingw和vc-7_1最简单了,只要设置set TOOLS=vc-7_1或者set TOOLS=mingw,如果是mingw直接bjam install就可以了,如果是vc-7_1,bjam "-sBUILD=debug release static/dynamic multi" install,然后就是漫长的等待了,3个小时左右。
如果是vc-7_1-stlport,首先修改boost源代码,参考http://mail.python.org/pipermail/c++-sig/2003-August/005319.html,http://article.gmane.org/gmane.comp.lib.boost.user/8324/match=date+time,http://lists.boost.org/MailArchives/boost/msg76098.php。这样将stlport同样解压缩到C:\opt\STLport-4.6.2。修改src\vc71.mak,将
EXTRA COMMON FLAGS=/FI "vc warning disable.h" /D " MBCS"改为
EXTRA COMMON FLAGS=/FI "vc warning disable.h" /D " MBCS" /Zc:wchar t
。然后编译安装,注意不要急着删除,编译boost时还用得到。修改vc-7_1-stlport-tools.jam,将
feature native-wchar_t : off on ;改为feature native-wchar_t : on off;
然后设置set STLPORT_VERSION=4.6.2,set STLPORT_4.62_PATH=C:\opt\STLport-4.6.2,set TOOLS=vc-7_1-stlport,然后bjam "-sBUILD=debug release static/dynamic multi" install
你会发现编译出来的lib有重复的,自己删除好了
注意在VC下用stlport编译debug版本,需要预定义宏_STLP_DEBUG,如果定义了BOOST_LIB_DIAGNOSTIC,vc下就不需要显示的连接lib库了,一个典型的例子是cl /D_STLP_DEBUG /DBOOST_LIB_DIAGNOSTIC /MDd /GX simple_ls.cpp