Windows平台下的STLport(5.2.1)配置

时间:2022-02-26 04:43:56

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