Vista系统下使用Visual Studio 2008编译STLPort

STLPort 5.2.1

由于VC中附带的STL实现版本并不完全符合ISO C++标准,效率欠佳,问题也比较多,所以决定换掉MS的STL,现在用得比较多的是STLPort,它是SGI STL的可移植版本,SGI Port是和C++标准比较符合的一个STL实现,是GCC编译器的内置STL,了解Linux下编程的朋友应该都认识GCC,应该算目前最符合C++标准的一个编译器了吧。

       好了废话不多说,进入实战!

       按照帮助文档的编译说明,失败!
       之后在网上看到了许多成功的案例,试着编译,最后还是失败。。。
       最后总算是编译出来了,共享一下!

       我的开发环境是Visual Studio 2008,vista系统,下载的STL Port是5.2.1版本的(暂时最新),最新版的应该也可以按如下方法编译:

编译前的设置:
将VC中的bin目录添加到环境变量PATH中,这样系统可以直接找到命令,比如下面的nmake,编译时要用的cl,link,lib等。
我这里的是E:\Program Files\Microsoft Visual Studio 9.0\VC\bin

1. 解压STL Port到任意目录,解压路径最好不要包含中文字符,路径中也不要含有空格等特殊字符!(我这里是E:\STLPort)

2. 打开cmd(如果编译失败,可以试着以管理员身份运行cmd)

3. 进入STL的安装目录(不会DOS命令的朋友,可以上网找找,学编程还是应该懂点BAT指令才行^_^)

4. 执行命令configure.bat msvc9
这是为了简化编译步骤而做的设置,会在build\lib子目录生成Mackfile文件

5. 执行”E:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat”,在cmd键入命令的时候要用双引号包起来(因为有空格)。
这一步很重要,这是设置编译时需要的环境变量,因为独立的cl编译器是和IDE做了集成的,cl所需的环境变量是从IDE的设置中获取的,所以这里一定要执行,否则最基本的windows.h它也说找不到

5. 现再进入build\lib子目录

6. 执行nmake clean install

7. 一切搞定,在STLPort的bin和lib目录中会找的编译后的dll和lib文件,添加到IDE中的路径就可以了,还有stlport子目录是所需的头文件,也添加进IDE的包含路径中。

提醒一下,在设置IDE时一定要将STLPort的包含文件路径和库文件路径放到VC的默认包含路径之前,否则STLport还是一样用不上,因为STLport是对C++标准库中STL的另一种实现,与VC中的标准库实现相对,我们是要覆盖原标准库,使用STLport替代,所以要让编译器和连接器首先使用STLport的头文件和库。

posted on 2009-10-27 15:09  2356  阅读(862)  评论(0编辑  收藏  举报