为VS2008安装STLport

STLport 在vs2005(vc8)下的配置  D:\Program Files\Microsoft Visual Studio 9.0\VC\bin
vcvars32.bat
configure -c msvc8
nmake /fmsvc.mak
nmake /fmsvc.mak install

================================================================

1.从 www.stlport.com 下载。最新的是5.2.1。实际也是从那个老巢下来的-sourceforge。
2.解压到一个目录。
3.用菜单下的 vs 提示符进入该目录,或者用cmd 进入后 执行vs安装的vsvar32.bat 获得vs的编译环境。
4.进入\build\lib里面 
 configure -c msvc9
 nmake /fmsvc.mak install
 完毕.
5.测试
 进入\build\test\unit
 nmake /fmsvc.mak install
测试完毕。


加入目录:include 加入:stlport的目录(解压缩里面有这么个目录)保证这个在最顶,被优先使用!!
 lib 加入:lib(也是解出来的)这个前后无所谓

注意:1。exe会报缺少stlportd.dll 该文件在 stlport编成的bin里面 ,考虑加在system下或项目目录下或vs能找到的地方。
 2。 有些原来能用pjstl编译的现在或是debug有问题,或是release有问题,有可能项目的/MT没有开,MTD也是不行的!!因为pj的不是线程安全的,而stlport是线程安全的。

=========================================

在使用stlport时,项目根据什么原则判断是链接到静态的stlport库,还是动态的stlport库呢?

对于MSVC来讲,这一切的奥妙都在stlport/config/_msvc.h里。在这里有几个宏需要特别注意:

_STLP_USE_DYNAMIC_LIB:定义这个宏,则链接到动态库

_STLP_USE_STATIC_LIB:指示链接到静态库

_DLL:如果项目选项里设置了/MD 或者 /MDd Code Generation->Runtime Library->Multi-threaded Debug DLL (/MDd),那么将会自动定义宏_MT 和 _DLL,看到_DLL这个宏,自动链接到stlport动态库。

所以,静态还是动态链接到CRT库(多线程时为LibCMT.lib,单线程时为LibC.lib),通过项目设置即可做到,此时stlport作为C++库,也会自动根据项目设置调整。如果希望链接到stlport库时的形式与CRT库不一致,那么可以通过定义_STLP_USE_DYNAMIC_LIB或者_STLP_USE_STATIC_LIB做到。

参考:关于/MD /MT等选项的意义,可以参考MSDN相关内容

你可能感兴趣的:(多线程,测试,System,dll,Build,include)