VS2012下安装STLport

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

接下来解压文件,得到目录STLport-5.2.1。本人的vs2012的安装目录是:E:\win7\VS12。我将解压后的STLport放到E:\win7\VS12\VC目录下(放到哪里应该是随意的)。再按照以下步骤操作:


1.右键计算机,属性,高级系统设置,环境,系统变量,编辑Path变量,添加 ;E:\win7\VS12\VC\bin   


2.E:\win7\VS12\VC\bin 目录,编辑 vcvars32.bat 。找到下面的一段,主要是添加STLport的include和lib路径。 


@rem INCLUDE
@rem -------
@if exist "%VCINSTALLDIR%ATLMFC\INCLUDE" set INCLUDE=%VCINSTALLDIR%ATLMFC\INCLUDE;%INCLUDE%;E:\win7\VS12\VC\STLport-5.2.1\stlport
@if exist "%VCINSTALLDIR%INCLUDE" set INCLUDE=%VCINSTALLDIR%INCLUDE;%INCLUDE%
 
@rem LIB
@rem ---
@if exist "%VCINSTALLDIR%ATLMFC\LIB" set LIB=%VCINSTALLDIR%ATLMFC\LIB;%LIB%;E:\win7\VS12\VC\STLport-5.2.1\lib
@if exist "%VCINSTALLDIR%LIB" set LIB=%VCINSTALLDIR%LIB;%LIB%

保存之后,双击 vcvars32.bat ,使我们的设置生效。


3.在 E:\win7\VS12\VC\STLport-5.2.1\stlport\stl 目录,编辑 _cstdlib.h。
将第158行的
 
inline _STLP_LONG_LONG  abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }
 
这一行改为如下三行。(就是多了个if判断。)
 
#if !defined(_STLP_MSVC) || (_STLP_MSVC < 1600)
inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }
#endif

4.打开开始菜单的Microsoft Visual Studio 2010下的Visual Studio Tools中的“VS2012 开发人员命令提示”
(1)切换到目录E:\win7\VS12\VC\STLport-5.2.1
cd E:\win7\VS12\VC\STLport-5.2.1

(2)进行配置,可以通过 configure --help查看支持哪些配置。这里进行的配置是:
configure msvc9

(3)切换到E:\win7\VS12\VC\STLport-5.2.1\build\lib目录
cd E:\win7\VS12\VC\STLport-5.2.1\build\lib

(4)编译STLport,获得库文件,
nmake /f msvc.mak clean install

(5)几分钟后,编译完成,E:\win7\VS12\VC\STLport-5.2.1多出lib和bin等目录。接下来,将bin目录下的文件拷贝到E:\win7\VS12\VC\bin。

(6)设置vc工程的include和lib目录。
VS2012菜单,View,Property Manager,Debug|Win32,双击Microsoft.Cpp.Win32.user,Common Properties,VC++ directories。
在 Include Directories 下添加E:\win7\VS12\VC\STLport-5.2.1\stlport 。
在 Library Directories 下添加E:\win7\VS12\VC\STLport-5.2.1\lib 。
注意,要将它们都添加到前面,否则vs默认用的微软自家的STL。


测试程序:
#include <iostream>   //注意,不能再使用#include <iostream.h> ,会出错的
#include <rope>   
   
using namespace std;  
   
int main()  
{  
    // crope是用来存储char字符的容器   
    crope crope1("Hello,");  
    crope crope2("STLport!");  
    cout << crope1 + crope2 << endl;  
   
    system("pause");  
    return 0;  
}  
/* 
输出效果: 
  
Hello,STLport! 
请按任意键继续. . . 
  
*/  






你可能感兴趣的:(安装,vs2012,STLport)