天天看点

vs2012 使用STLport-5.2.1

下载地址: http://sourceforge.net/projects/stlport/

  下载后解压,假设目录为:D:\STLport,接下来就该编译它了:

1.在开始菜单中找到VC 命令行工具,接下来切换到D:\STLport\STLport-5.2.1目录。

2.可以运行configure –help看看编译选项,用MSVC编译器编译的话,输入以下命令:

configure msvc9(configure msvc11 会显示 Unknown compiler: msvc10, msvc9即可)

3.输入

cd build

cd lib

4.输入

nmak clean install

(在第二步的时候会有提示让你输入安装命令)

如果不出错,稍等几分钟就OK了。

假若出现如下错误:

D:\STLport\STLport-5.2.1\stlport\stl/_cstdlib.h( 158) : error C2084: function  ' __int64 abs(__int64) '  already has a body

C:\Program Files\Microsoft Visual Studio  10.0\VC\INCLUDE\../include/stdlib.h( 471) : see previous definition of  ' abs '

NMAKE : fatal error U1077:  ' "C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.EXE" ' :  return code  ' 0x2 '

用vs2010打开D:\STLport\STLport-5.2.1目录下的_cstdlib.h文件(可以搜索到),找到158行:
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

这样保存并重新编译安装即可。

使用 STLport

      使用STLport除了向项目添加 STLport 的头文件目录和 Lib 目录以外还有如下宏定义配合使用。
1 #define _STLP_USE_STATIC_LIB    // 使用 STLport 静态库   
2 #define _STLP_USE_DYNAMIC_LIB   // 使用 STLport 动态库 
3 #define _STLP_DEBUG             // STLport 启用 Debug 模式下的检查功能   
4 #define _STLP_USE_BOOST_SUPPORT // STLport 与 Boost 库配合使用       

继续阅读