Chinaunix首页 | 论坛 | 博客
  • 博客访问: 243896
  • 博文数量: 52
  • 博客积分: 1355
  • 博客等级: 中尉
  • 技术积分: 485
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 12:23
文章分类

全部博文(52)

文章存档

2013年(5)

2012年(16)

2011年(26)

2010年(2)

2009年(1)

2008年(2)

我的朋友

分类: C/C++

2011-07-22 18:01:57

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]..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

阅读(1639) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~