1.去官网http://www.stlport.org/下载最新的STLport,我下载了STLport-5.2.1.tar.bz2,它是纯净的源码,需要用户自己编译。
2.VS2010编译步骤:(解压文件STLport-5.2.1.tar.bz2到路径D:\tmpcode\STLport-5.2.1为例)
文本打开D:\tmpcode\STLport-5.2.1\stlport\stl\_cstdlib.h文件,找到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
3.打开VS2010的DOS命令提示工具,依次执行以下命令:
<1>d:
<2>cd D:\tmpcode\STLport-5.2.1
<3>configure msvc9
<4>cd build
<5>cd lib
<6>nmake clean install
编译完成,会生成文件夹bin和lib
4.设置Windows的环境变量。推荐使用工具Rapid Environment Editor。http://www.rapidee.com/
环境变量,用户变量组,新建变量名:STLport,变量值:D:\tmpcode\STLport-5.2.1
5.修改VS2010的参数,在项目的解决方案那里找到属性页,打开并选择配置属性,选择VC++目录,设置包含目录和库目录,例如我的为:
包含目录 $(STLport)\stlport;$(IncludePath)
库目录 $(STLport)\lib;$(LibraryPath)
6.至此设置完毕。
使用STLport除了向项目添加 STLport的头文件目录和 Lib目录以外还有如下宏定义配合使用。
#define _STLP_USE_STATIC_LIB // 使用 STLport 静态库
#define _STLP_USE_DYNAMIC_LIB // 使用 STLport 动态库
#define _STLP_DEBUG // STLport 启用 Debug 模式下的检查功能
#define _STLP_USE_BOOST_SUPPORT // STLport 与 Boost 库配合使用
#define _STLP_USE_MFC // STLport 与 MFC 库配合使用
7.运行下面程序,测试
#include "stdafx.h"
#include <vector> //这里连接的文件不是VS自带的vector,而是指向D:\tmpcode\STLport-5.2.1\stlport\vector
#include <list>
using namespace stlport; //STLport的命名空间
//#define _STLP_USE_STATIC_LIB // 使用 STLport 静态库
#define _STLP_USE_DYNAMIC_LIB // 使用 STLport 动态库
#define _STLP_DEBUG // STLport 启用 Debug 模式下的检查功能
//#define _STLP_USE_BOOST_SUPPORT // STLport 与 Boost 库配合使用
int _tmain(int argc, _TCHAR* argv[])
{
vector<int> test;
test.push_back(1);
test.push_back(2);
test.push_back(3);
list<int> lt;
lt.push_back(6);
return 0;
}