VS2010 安装使用STLport
1.本机环境
win7 64位
visual studio 2010 中文旗舰版
STLport-5.2.1.tar.bz2
2.下载STLport
http://sourceforge.net/projects/stlport/
下载后解压,本人的解压路径为:D:STLport,解压解压后包含多个文件加和目录。
3.修改配置
(1)在系统的path环境变量中增加如下目录:(该目录就是安装vs2010的位置)
D:Program Files (x86)Microsoft Visual Studio 10.0VCin (仅限本人机器)
(2)编辑vcvars32.bat文件
该文件的完整目录:D:Program Files (x86)Microsoft Visual Studio 10.0VCinvcvars32.bat
主要在该文件中添加STLport的include(头文件)路径和lib(库文件)路径,以便vs能找到我们所包含的文件,如:#include <string>。
修改后的内容如下所示:
@rem INCLUDE
@rem -------
@if exist "%VCINSTALLDIR%ATLMFCINCLUDE" set INCLUDE=%VCINSTALLDIR%ATLMFCINCLUDE;%INCLUDE%;D:STLportstlport
@if exist "%VCINSTALLDIR%INCLUDE" set INCLUDE=%VCINSTALLDIR%INCLUDE;%INCLUDE%
@rem LIB
@rem ---
@if exist "%VCINSTALLDIR%ATLMFCLIB" set LIB=%VCINSTALLDIR%ATLMFCLIB;%LIB%;D:STLportuildlib
@if exist "%VCINSTALLDIR%LIB" set LIB=%VCINSTALLDIR%LIB;%LIB%
保存之后,双击执行该文件(vcvars32.bat),执行成功后会提示如下内容:
D:Program Files (x86)Microsoft Visual Studio 10.0VC>vcvarsall.bat
Setting environment for using Microsoft Visual Studio 2010 x86 tools.
(3)编辑_cstdlib.h
该文件的位置位于解压路径:D:STLportstlportstl
将该文件中第158行的内容,如下所示:
inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }
更改位前后加上条件判断语句,修改后的内容如下所示:
#if !defined( _STLP_MSVC ) || ( _STLP_MSVC < 1600 )
inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }
#endif
(4)编译STLport
在“开始”菜单中选择“Microsoft Visual Studio 2010”文件夹下的“Visual Studio Tools”文件夹中的“Visual Studio 命令提示符(2010)"工具;
然后将命令行的路径切换到:D:STLport;
执行命令:configure msvc9
然后切换到:D:STLportulidlib
执行命令:nmake /f msvc.mak clean install
4.配置与测试
(1)将D:STLportin文件加中的三个动态库:
stlport.5.2.dll
stlportd.5.2.dll
stlportstld.5.2.dll
拷贝到如下路径中:
D:Program Files (x86)Microsoft Visual Studio 10.0VCin
(2)将STLport的include(头文件)和lib(库文件)包含在vs 2010的配置中,最好的方法是进行永久配置,好让每次新建的工程都能使用这些配置,而不用每个工程都添加这些配置。方法如下所示:
在vs2010中 “视图”菜单->“属性管理器”->"Debug|Win32"->"Microsoft.Cpp.Win32.user",然后在“常规”选项卡中的“包含目录”中增加“D:STLportstlport”路径,在“库目录”中增加“D:STLportlib”路径。
在使用STLport过程中,可以使用不同的宏在决定使用动态链接或是静态链接STL。
#define _STLP_USE_BOOST_SUPPORT //STLport 与 Boost 库配合使用
#define _STLP_USE_STATIC_LIB //静态链接STLport
#define _STLP_USE_DYNAMIC_LIB //动态链接STLport
#define _STLP_DEBUG //Debug调试模式
(3)新建C++工程测试,测试代码如下所示:
因为STLport在标准之外增加了若干有用的扩展,如rope(增强的字符串类),所以我们就使用crope来测试我们的STLport是否安装成功。
#include <iostream>
#include <rope>
int main( int argc, char *argv[] )
{
std::crope myrope( "Hello world!" );
std::cout << myrope << std::endl;
system("pause");
return 0;
}
如果真确输出,则表示安装配置成功。