平台环境:windows 7 32位+VS2010+STL源代码5.2.1
STL在sourceforge下载,如果不可以下载,可以在csdn下载。
下载好源码后,首先解压到硬盘,我解压到D:\STL。
在vs2010 tools选择“Visual Studio 命令提示(VS2010)”
在cmd窗口,目录切换到刚刚解压源码的根目录,
输入configure -help查看编译选项
显示平台式XP,这里暂时不管。
输入configure msvc9配置环境
上面红框里面的内容不用去管。
之后切换目录到build/lib中,输入nmake clean install编译,出现如下错误:
是头文件_cstdlib.h中158行处的问题,用的是32位机,_int64可能不支持,注释掉这一行。
在目录STLport-5.2.1\stlport\stl中找到_cstdlib.h,注释掉158行
//inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }
之后就可以在VS2010中使用了。打开VS2010,新建一个工程,我新建的是空的控制台工程。
在工程上面右键-选择属性,
我们要把刚刚编译的库包含到这个工程里面,选择VC++目录,在包含目录中添加STLport-5.2.1\stlport目录,在库目录添加STLport-5.2.1\lib目录,然后确定。
然后把STLport-5.2.1\bin目录下的六个文件复制到刚刚新建的工程的根目录,注意是“工程的根目录”,不是整个解决方案的根目录。之后就可以使用了,调试就可以进入源代码查看了执行过程了。
STL还可以配合下面宏定义使用:
#define _STLP_USE_STATIC_LIB // 使用 STLport 静态库 #define _STLP_USE_DYNAMIC_LIB // 使用 STLport 动态库 #define _STLP_DEBUG // STLport 启用 Debug 模式下的检查功能 #define _STLP_USE_BOOST_SUPPORT // STLport 与 Boost 库配合使用
附刚刚建的工程的代码,很简单,注意include时用双引号,不要用尖括号了。
#include<iostream> #include"vector" using namespace std; int main() { vector<int> v; v.push_back(1); v.push_back(2); return 0; }