编译环境: win7 64位 VS2012 STLport5.2.1
因为Boost教程《Boost程序库完全开发指南》中提到STLport是配合Boost程序库工作的默认标准库,且我的编译器是VS2010,而目前STLport的编译在官网上最新只支持到VS2008,所以需要手动改一下源代码。文件在STLport库目录下的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
进入VS2012
cd E:\STLport-5.2.1\STLport-5.2.1
输入命令:
configure.batmsvc9
cdbuild/lib
nmake cleaninstall
编译成功
看一下\STLport-5.2.1目录下面, 多了bin 和lib 两个目录. 里面有dll 和 lib. 将dll复制到VC\bin目录下面, 在项目中添加include, lib目录即可使用stlport