1.打开命令提示符,进入STLport根目录.
运行vcvars32.bat批处理文件.
VC6, X:/Program Files/Microsoft Visual Studio/VC98/Bin/vcvars32.bat
VC7, X:/Program Files/Microsoft Visual Studio .NET 2003/Vc7/bin/vcvars32.bat
VC8, X:/Program Files/Microsoft Visual Studio 8.0/VC/bin/vcvars32.bat
VC9, X:/Program Files/Microsoft Visual Studio 9.0/VC/bin/vcvars32.bat
注意:当存在多个C++编译器时,如果不运行此文件,只能编译一种C++编译环境下的STLport库.这样一来,在一个C++编译环境下引用另外
一个C++编译环境下的STLport库会出现编译错误.
2.使用命令configure对STLport进行配置.
注意:只有进入STL根目录才能运行configure命令(运行此命令其实是运行STLport根目录下的configure.bat批处理文件).
configure命令必须配合一些选项才能使用.如果想知道各个选项的详细介绍可键入:configure --help
下面是使用configure命令配置STLport必须用到的一些选项:
第一个选项必须是编译器的名称,Windows下可用的编译器名称如下:
选项名 全称
------------------------------------------------------------
msvc6 Microsoft Visual C++ 6.0
msvc7 Microsoft Visual C++ .NET 2002
msvc71 Microsoft Visual C++ .NET 2003
msvc8 Microsoft Visual C++ 2005
msvc9 Microsoft Visual C++ 2008
icl Intel C++ Compiler
evc3 Microsoft eMbedded Visual C++ 3 (*)
evc4 Microsoft eMbedded Visual C++ .NET (*)
evc8 Microsoft Visual C++ 2005 compiling for CE
evc9 Microsoft Visual C++ 2008 compiling for CE
以下的选项无次序要求
[-p] [平台名称] 或 -platform [平台名称] '实际使用时请不要键入方括号
Windows下可用的平台名称如下:
选项名 全称
------------------------------------------------------------
win95 Windows 95 compatible
win98 Windows 98 and up to Windows XP excluded
winxp Windows XP or later (default)
[-X]
使用交叉编译,一般不使用此选项.
[--with-static-rtl]
表示使用static C/C++ runtime library(libc.lib family)
[--with-dynamic-rtl]
表示使用dynamic C/C++ runtime library (msvcrt.lib family)
对于VC6在"Project->Setting-> C/C++ ->Category:Code Generation/Use run-time library"
里选择运行库,如下:
To use this run-time library Ignore these libraries
-------------------------------------------------------------------------------------
Single-threaded (libc.lib) libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Multithreaded (libcmt.lib) libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Multithreaded using DLL (msvcrt.lib) libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Debug Single-threaded (libcd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib
Debug Multithreaded (libcmtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib
Debug Multithreaded using DLL (msvcrtd.lib) libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib
还有其它的一些选项,可使用"configure --help"使用查看详细信息,一般生成Stlport以上的选项已经足够了
3.使用"cd build/lib"进入 build/lib 目录,再键入"nmake clean install"命令编译stlport
编译完成之后,会在Stlport的根目录下生成 lib 和 bin 两个文件中.
lib文件夹中是编译生成的库文件(*.lib)
bin文件夹中是编译生成的动态链接库文件(*.dll)
4.使用Stlport库
在编译工具的包含目录和库目录中加入Stlport根目录下的头文件目录和库目录.
头文件目录为:stlport
库目录:lib
如果要使用Stlport的静态库版本,在程序中定义宏:_STLP_USE_STATIC_LIB
如果要使用stlport的动态库版本,在程序中定义宏:_STLP_USE_DYNAMIC_LIB
如果以上两个宏都没有定义,默认使用静态库.
5.编译生成的库文件
stlport[d|stld][_x,_static,_statix].<STLport-Version>.lib
d : debug build
stld: debug build with _STLP_DEBUG (STL safe) mode
_x: Build of STLport as a dll but statically link to the native runtime.
_static : build of a static library
_statix : build of a static library link dynamically to the native runtime.
使用static C/C++ runtime library(libc.lib family)的STLport静态库
stlportstld_static.lib
stlportd_static.lib
stlport_static.lib
使用static C/C++ runtime library(libc.lib family)的STLport动态库
stlportstld_x.5.2.lib
stlportd_x.5.2.lib
stlport_x.5.2.lib
使用dynamic C/C++ runtime library (msvcrt.lib family)的STLport静态库
stlportstld_statix.lib
stlportd_statix.lib
stlport_statix.lib
使用dynamic C/C++ runtime library (msvcrt.lib family)的STLport动态库
stlportstld.5.2.lib
stlportd.5.2.lib
stlport.5.2.lib