STLprot是一个完全符合C++98标准的一个免费跨平台的C++标准库实现。
经测试,windows MSVC平台下,STLport的运行速度比VC8自带的STL(Dinkumware v405)大约块一倍,比VC9自带的STL(Dinkumware V503)快约10percent。
所以我们可以使用STLport代替MSVC自动的Dinkumware STL 进行windows平天下的开发。
此处摘自《Boost程序库完全开发指南》
1)STLport的下载
STLPort官网(http://www.stlport.org/->Dowdload-> STLport Home at SourceForge->wait 5s)下载STLport-5.2.1.tar.bz2(最新版本为20081210发布的5.21版本),将压缩包里面的STLport-5.2.1文件夹全部文件解压到了D:\STLport,当然你也可以解压到其他路径。
2)STLport的编译
(STLport 的安装方法在STLport-5.2.1.tar.gz 解压后的STLport-5.2.1\INSTALL 文件中有详细说明。)
1,打开开始菜单下的Visual Studio 2008 Command Prompt(开始->附件->vs2008->visual studio tools->vs2008命令提示)
2,输入“d:”
3,输入“cd d:/STLport”
4,输入“configure msvc9” (VC6则改为msvc6 ;vs2005,vc8则改为msvc8.)
5,输入“cd d:/STLport/build/lib”
6,输入“nmake -f msvc.mak clean install”
7,大约等几分钟编译完成后,回自动将编译出的dll和lib文件复制到新生成的lib和bin文件夹里面,此外也可以将STLport\build\lib\obj 文件夹(约318MB)删除一节约空间。
3)STlport的测试
再执行以下代码,通过则成功。 – under Windows:
cd ../test/unit
nmake install
cd ../../../bin
stl_unit_test
stl_unit_testd
stl_unit_teststld
PS:
在执行“nmake install”是会看到以下错误:
错误提示:
../../../test/unit\ctype_facets_test.cpp : warning C4819: 该文件包含不能在当前代
码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
../../../test/unit\ctype_facets_test.cpp(430) : error C2001: 常量中有换行符
../../../test/unit\ctype_facets_test.cpp(430) : fatal error C1057: 宏展开中遇到
意外的文件结束
NMAKE : fatal error U1077: “”D:\Program Files\Microsoft Visual Studio 9.0\VC\BI
N\cl.EXE””: 返回代码“0×2”
Stop.
可以将STLport/test/unit/ctype_facets_test.cpp中的:
CPPUNIT_ASSERT( ct.is(ctype_base::mask(ctype_base::print | ctype_base::lower | ctype_base::alpha), ‘?) );
改为 ↓
CPPUNIT_ASSERT( ct.is(ctype_base::mask(ctype_base::print | ctype_base::lower | ctype_base::alpha), 0xE7) );
此处错误处理转自:http://qos.mine.nu/wordpress/2009/10/stlport-521vs2008.html
虽然还会出现几个warning ,但还是可以通过测试。