天天看点

win7+vs2008下安装配置STLport

win7+vs2008下安装配置STLport

转载自:http://www.ouchangjian.com/index.php/archives/492

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 ,但还是可以通过测试。