环境 VC6.0+SP5, WindowsXP+SP2
STLport版本 4.6.2
我的vc装在 d:/bin/vc6, 将STLport解压至 d:/bin/vc6/VC98, STLport的根目录为 STLport (即把原来的版本号去掉)
编辑 d:/bin/vc6/VC98/bin 下的 vcvars32.bat 文件
给INCLUDE 变量 加上 %MSVCDir%/STLport/stlport
给LIB变量加上 %MSVCDir%/STLport/lib
改后应为
set INCLUDE=%MSVCDir%/STLport/stlport;%MSVCDir%/ATL/INCLUDE;%MSVCDir%/INCLUDE;%MSVCDir%/MFC/INCLUDE;%INCLUDE%
set LIB=%MSVCDir%/STLport/lib;%MSVCDir%/LIB;%MSVCDir%/MFC/LIB;%LIB%
开启一个console窗口, 运行 d:/bin/vc6/VC98/bin/vcvars32.bat,
若回显
Setting environment for using Microsoft Visual C++ tools.
说明成功了.
cd到 d:/bin/vc6/VC98/STLport/src
运行 nmake -f vc6.mak clean all
编译 STLport, 如果没有报错, 就成功了.
我曾经下过 5.0版本的STLport, 在这里就没有编译成功, 只好用4.6.2的. 毕竟5.0不是正式版
打开VC, tools->options->directories,
选择 include files, 加入 d:/bin/vc6/VC98/STLport/stlport
选择 lib files, 加入 d:/bin/vc6/VC98/STLport/lib
并把他们都调到最前面,
当你不想用STLport的STL, 而相用VC自带的STL的时候调到后面就可以了.
编译一个测试程序, 这个程序用VC自带的STL是通不过的, 但是STLport却可以
#include <vector>
#include <deque>
using namespace std;
int main() {
const int arraySize = 7;
int ia[arraySize] = {0, 1, 2, 3, 4, 5, 6};
vector<int> v(ia, ia+arraySize);
deque<int> d(ia, ia+arraySize);
return 0;
}
Reference
http://blog.csdn.net/li_yadan/archive/2004/08/20/80285.aspx