在win7 + vs express for desktop中安装stlport和boost库

一、安装stlport

stlport是将sgi的stl库平移到各个平台上。sgi的这个库的特点就是效率非常高。boost在这个库上面运行要比vs自带的stl库效率高。所以我们首选安装stlport。

  1. 下载stlport:http://sourceforge.net/projects/stlport/ 最新版本是5.2.1
  2. 放到C盘根目录下面,解压。进入”vs2012 x86 native tools command prompt”。(注意:用cmd不行)
  3. 进入“C:\STLPort”目录,运行命令“configure msvc9”。msvc9应该对应的是vs2008。现在stlport没有支持更高的vs版本。所以,就按msvc9来configure了。
  4. “cd C:\STLport\lib”,运行“nmake -f msvc.mak clean install”。

    这个时候会出现错误,如下:

    *C:\STLport\stlport\stl/_cstdlib.h(158): error C2084: function ‘__int64 abs(__int64)’ already has a body

    C:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE../include/stdlib.h(471) : see previous definition of ‘abs’

    NMAKE : fatal error U1077: ‘“C:\ProgramFiles\Microsoft Visual Studio 10.0\VC\BIN\cl.EXE”’ : return code ‘0x2’*

  5. 解决方法是找到“C:\STLport\stlport\stl_cstdlib.h”文件,在158行中,由
inline _STLP_LONG_LONG  abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }

改成:

#    if !defined(_STLP_MSVC) || (_STLP_MSVC < 1600)
inline _STLP_LONG_LONG  abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }
#    endif
  1. 不出意外的话,等待二十分钟,应该就会编译完成。
  2. 删除“STLport\build\lib\obj”目录中的中间文件(大约300M),节省磁盘工件
  3. 设置vs,优先使用stlport的头文件和lib库
    1. 首先需要打开一个project
    2. 选择 菜单“project–>xx properties…”
    3. 在顶部下拉菜单中选择“configuration: All configurations”,否则每次创建新的project都要设置一次,烦死~
    4. 找到“configuration properties –> vc++ directories”
    5. 修改三个目录:“include directories”,加入“C:\STLPort\stlport”;“library directories”加入“C:\STLPort\lib”;“excutable directories”加入“C:\STLPort\bin”
    6. 找到“configuration properties –> General–>Character Set”,设置为“Not Set”
    7. 找到“configuration properties –>Preprocessor–> Preprocessor Definitions”,加入“_STLP_DEBUG”和“__STL_DEBUG”,这样在debug的时候,就能够动态链接到stlport的debug版本的库了,能够深入debug进去。
    8. 找到“configuration properties –>Preprocessor–> Code Generation–> Runtime Library”,设置成“Multi Thread”。*要注意区分debug版本和release版本,分别对应不同的编译target。

二、安装boost库

boost提供一些stl没有的功能,如:多线程、正则表达式、函数式编程、等等。据说boost要被收录进stl成为标准。

  1. 下载boost库:http://www.boost.org/ 现在的最新版本是1.58.0
  2. 放到C盘根目录下解压,得到“C:\boost”(改了目录名字,去除了版本号)
  3. 用”vs2012 x86 native tools command prompt”进入上面目录,运行批处理文件:“bootstrap.bat”,在“C:\boost”目录下生成b2.exe,bjam.exe,和project-config.jam
  4. 用文本编辑器打开project-config.jam文件,并修改,增加一行“using stlport : STLport : C:/STLport/stlport : C:/STLport/lib ;”以便使用stlport作为底层库进行编译。注意:路径之间用冒号分隔,而不是分号或者空格;上面增加的两个路径分别是头文件路径和lib库路径。
  5. 键入命令“bjam threading=multi link=shared,static runtime-link=shared stdlib=stlport –stagedir=./stage”进行编译……漫长的等待
  6. 编译完成。在我的机器上,failed updated 658 targets, skipped 808 targets, updated 813 targets……
  7. 继续设置project以便能够利用boost库中的文件和编译出来的结果
    1. 首先需要打开一个project
    2. 选择 菜单“project–>xx properties…”
    3. 在顶部下拉菜单中选择“configuration: All configurations”
    4. 找到“configuration properties –> C/C++->General->Additional Include Directories”,设置boost头文件路径,“C:\boost\boost”
    5. 找到“configuration properties –> C/C++->linker->Additional library Directories”,设置boost库文件路径,“C:\boost\stage\lib”。之前老版本,需要从编译好的路径里面copy&paste出来这些库,不过现在貌似都生成在stage目录下了。

三、尝试

从网上找一段代码如下:

#include <iostream>
#include <vector>
#include <boost/timer.hpp>  

using namespace std;
using namespace boost;   

int main()
{
    std::vector<int> vt;  //STLport的vector!
    timer t;    //构造一个计时器对象
    cout<<"max timespan:"<<t.elapsed_max()/3600<<"h"<<endl; //定时器最大计时
    cout<<"min timespan:"<<t.elapsed_min()<<"s"<<endl;      //定时器最小计时(分辨率)         

    cout<<"now time elapsed:"<<t.elapsed()<<"s"<<endl;      //从计时器对象构建至今过了多长时间      

    system( "pause" );
    return 0;
}

运行结果如下:

max timespan:596.523h
min timespan:0.001s
now time elapsed:0.011s
Press any key to continue . . .

四、参考链接

http://blog.sina.com.cn/s/blog_6f62c9510101svk7.html

http://blog.csdn.net/ajioy/article/details/7304530

http://www.cnblogs.com/fullsail/archive/2011/10/07/2200948.html

http://www.xuebuyuan.com/608176.html

五、后记

用stlport的库的确可能比较快,不过在vs中调试stlport的对象不太方便。其中一个典型的例子是vector。用vs自带的vector,在调试窗口可以直接看到vector中每个元素的值。如果用stlport的话,就必须在窗口中写上“vt._M_non_dbg_impl._M_start[2]”,才能看到vector vt中的第三个元素的值。

我在上面的configure中去掉stlport的头文件和库文件的引用,默认用vs自带的stl来编译“四”中的程序,也能编译通过,且运行通过。

完。

时间: 2024-08-25 01:34:17

在win7 + vs express for desktop中安装stlport和boost库的相关文章

vs2012中配置和使用boost库

vs2012中配置和使用boost库 一.配置: 1.到www.boost.org下载boost库源代码,完成之后解压,我放置的路径是f:\install. 2.打开vs2012,点击"工具"->"visual studio 命令提示",弹出命令行 3.切换到install\boost_1_55_0路径下,在命令行输入bootstrap,便生成bjam.exe,保存在boost_1_55_0目录下 4.在命令行输入bjam toolset=msvc-12.0

LNMP编译安装的架构中安装zabbix(php支持库的问题很多)

PHP编译参考 为了减少不必要的支持库报错,最好先安装执行编译前需要的支持库软件yum install -y net-snmp net-snmp-devel libcurl-devel libevent-devel java* openldap-devel &&?cp -frp /usr/lib64/libldap* /usr/lib/php编译安装参数参考 ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/u

在Ubuntu Desktop中安装软件

1. 安装好虚拟机后,可以先打开firefox,看是否可以访问外部的网页. 2. 如果在公司内网,可能访问不起,需要添加代理,确保可以访问外部的网页. 3. 更新软件源 sudo apt update 4. 下载vim sudo apt install vim 5.软件源可以更改,点击访问 ,打开用gedit 打开/etc/apt/sources.list,替换里面的软件源.如果不能保存文件,请用chmod自行更改sources.list文件的读写权限. 原文地址:https://www.cnb

一键安装各个版本boost库(无需编译)

1.NuGet 最简单的,用VS自带的NuGet包管理器安装,一般比较常用的上面都有 2.下载exe安装包 在这里https://sourceforge.net/projects/boost/files/boost-binaries/直接下载想要版本的exe安装文件,一键安装,无需编译,soeasy,就是下载速度有点慢 原文地址:https://www.cnblogs.com/jixiaohua/p/12009827.html

ubuntu 14.04中安装 ruby on rails 环境(填坑版) 呕血推荐

环境:在win7 上Vmware虚拟机环境中安装的ubuntu 14.04 开发相关: ruby 2.2.0 rails 4.2.0 sublime text 3 本文说明:所有的命令均在$ 之后,若$前边带有信息,只是为了方便你理解和与自己对照. 安装过程中由于这样那样的原因,产生许多坑,所谓坑是对初学者来说,大牛们飘过吧. 步骤1.从官网下载ubuntu 14.04 X64 http://124.205.69.136/files/2013000000502943/202.141.176.11

在Win7下利用VirtualBox和Vagrant中安装Docker

1.安装VirtualBox 和 Vagrant 首先下载安装VirtualBox 和 Vagrant的windows版本,两个都安装完成后,假设Vagrant在D:\HashiCorp\Vagrant目录下. 1.1 下载 cmd进入DOS,进入目录D:\HashiCorp\Vagrant\bin,一般标准命令是: To use the available boxes just replace {title} and {url} with the information in the tabl

MAC 中安装和使用express

其实window系统和mac的操作在大致上其实是想同的,只是一些细节的区别,以下对在mac下安装和使用express做简要介绍,如有不妥之处请各位大神指教. 一.首先要测试node和npm是否已经正确在自己电脑上安装成功,检测方法:直接在命令行输入 `node -v` 按下回车后出现 "版本号"表示node已经正确安装,输入 `npm -v` 按下回车 出现版本号为已正确安装(若还未安装,可先至http://nodejs.cn/download/ 该网站下载安装) 二.建立新的项目文件

Win7中安装EclipsePHP

1. 安装WarmServer(一键式安装apache+php+mysql); 2. 将安装后的EclipsePHP工作目录workspace指向WarmServer安装目录下的www目录下即可 异常1: Eclipse启动提示javaw.exe in your current PATH.No java virtual machine 第一次运行Eclipse或者重新安装了JDK以后,经常会提示下面的问题: ... No java virtual machine was found after

Win7中安装Telnet客户端

Win7中安装Telnet客户端 1. "开始"."控制面板"."程序"."打开或关闭Windows功能". 2. 勾选"Telnet客户端",并点击"确定". 3. 按下快捷键"Win+R",并输入"cmd"后点击"确定". 4. 测试telnet功能. 输入memcache的stats命令后: