转自:http://blog.csdn.net/code_see/article/details/6301768
今天为了在VC6.0中装STLPort,搞了好久。下面介绍我遇到的一些问题和参照网上的解决方法。
首先下载 STLport源代码,你可以到官网(http://www.stlport.org/)下载。我是直接在Google里搜了一个STLport-5.1.3源代码下载了,不是最新版。
然后把源码解压到一个目录,我直接解压到C盘根目录。
1、首先在…/Microsoft Visual Studio/VC98/Bin/VCVARS32.BAT中,把C:/STLport-5.1.3/stlport; 加入Include路径中;把C:/STLport-5.1.3/lib; 加入Lib路径中;(这里在C:/STLport-5.1.3下没有lib子目录,先加上去,一会编译会生成的)下面是我设置的:
set INCLUDE=C:/STLport-5.1.3/stlport;%MSVCDir%/ATL/INCLUDE;%MSVCDir%/INCLUDE;%MSVCDir%/MFC/INCLUDE;%INCLUDE%
set LIB=C:/STLport-5.1.3/lib;%MSVCDir%/LIB;%MSVCDir%/MFC/LIB;%LIB%
2、打开cmd,运行刚才的VCVARS32.BAT;进入%STLport%,运行C:/STLport-5.1.3/build/lib/configure -c msvc6。注意:configure命令要加上路径,因为configure命令是linux下的命令,dos中没有。当然,如果在当前目录下可以不带路径。下面nmake一样。
3、接下来先进入%STLport%/build/lib ;执行nmake /fmsvc.mak,这个要等一段时间;之后,执行nmake /fmsvc.mak install,是一些copy动作。
4、就是配置VC6.0了:
a、Tools -> Options -> Directories,选“Include files”,增加%STLport%/stlport,并移至顶端;不移至顶端,还是会用原来VC自带的STL;选“Library files”,增加%STLport%/lib,并移至顶端;
b、Project -> Settings -> C/C++, 在Category中选 “C++ Language”,
勾选“Enable exception handling”(这个最好选一下);在Category中选“Code Generation”, 在“Use run-time library”中选“Debug Mulithreaded”(这个Release版选“Mulithreaded”;如果想用动态链接,则要先编译动态链接版本的 STLport,再在这儿选择相应的DLL)
基本可以了,给个简单例子,试试:(VC自带的STL没有slist,只有安装成功了,才能编译成功)
#include <slist>
#include <iostream>
using namespace std;
int main(void)
{
slist<int> sl;
sl.push_front(11);
sl.push_front(23);
sl.push_front(39);
//打印单向链表元素
slist<int>::iterator i,iend;
iend=sl.end();
for(i=sl.begin(); i!=iend; i++)
cout << *i << ' ';
cout << endl;
return 0;
}