Boost学习总结(一)VS2010环境下编译STLport和Boost

Boost简介

Boost库是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++程序库。1998年,Beman G.Dawes(C++标准委员会成员之一)发起倡议并建立了Boost社区,目的是向C++程序员提供免费的、同行审查、可移植的高质量C++源程序库。Boost涵盖了字符串与文本处理、容器、迭代器、算法、图像处理、模板元编程、并发编程等等,使用Boost,将大大增强了C++的功能和表现力。

STLport是什么?

STLport是一个完全符合C++98标准的一个免费的C++标准库实现。STLport具有很多其他STL实现所没有的优点。首先是高度的可移植性,可以配合市面上几乎所有的操作系统和编译器使用,使开发的程序能够在不同的编译平台上获得一致的标准库实现。其次是性能表现优秀。第三个优点是在标准之外增加了若干有用的扩展,如rope(增强的字符串类)、slist(单链表数据结构)、hash_map(散列映射容器)以及支持线程安全。

接下来,我们就将STLport和Boost安装并学习使用这两个库。

安装VS2010

首先第一步,我们下载安装visual studio 2010。下载戳这里:visual studio 2010

安装步骤如下:

首先解压压缩包,需要几分钟的时间,然后双击setup.exe.

最后的安装得需要三十分钟左右,安装完成之后还会弹出一两个窗口,就不需要管了,直接各种取消之。

编译STLport

下载STLport地址在这里:http://sourceforge.net/projects/stlport/

我选择的是STLport-5.2.1版本,下载的是压缩包STLport-5.2.1.tar.bz2。和Boost一样,我们需要对其解压、编译之后才能使用这个库。

在【开始】菜单里打开vistual studio 2010下子文件vistual studio tools文件里的vistual studio命令提示(2010)。

第一步:执行E:\C++\STLport-5.2.1(这里我是以我的安装路径为准),进入了STLport目录;

第二步:configure msvc9(虽然我们安装的10版本,好像msvc10不行),配置编译环境;

第三步:执行cd build\lib;

第四步:执行命令nmake -f msvc.mak clearn install。

等待数分钟之后就可以了,这里因为我之前安装的时候忘记截图了,所以就没有办法给出图片显示,如果编译不成功的话,可以按照下面的方法改之。(这是我在网上找到的解决方法)

目前为止,应该把STLport编译成功了吧,呆会儿等编译Boost完成之后,一起来对这两个库进行测试。

编译Boost

下载Boost的官方网址:www.boost.org。但是打开速度太慢了,索性就在网上找到了压缩包boost_1_56_0.7z,然后解压就可以了。

双击之后,我们会得到四个文件,其中有两个文件就是上图中所看到的b2.exe和bjam.exe。

注意:接下来的编译需要一个小时左右的时间,这是一个很蛋疼的事情。

然后打开VS的命令提示窗口,运行bjam stage --without-python --toolset=msvc-10.0 --build-type=complete --stagedir="E:\C++\boost_1_56_0\bin\vc10"  link=static runtime-link=shared threading=multi debug release

stage:表示只生成库(dll和lib),用install的话还会生成包含头文件的include目录。

toolset:指定编译器,VS2010用msvc-10.0。

without/with:表示不编译/编译哪些库。

stagedir:当使用stage时用stagedir,使用install用prefix,表示编译生成文件的路径。路径的命名最好和编译器相关,编译管理。

link:指定生成动态链接库或静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。

runtime-link:动态/静态链接C/C++运行时库。有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式。

threading:单/多线程编译。

debug/release:编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。

在VS2010中测试STLport和Boost

我们运用VS10新建一个工程之后,右击工程名,选择属性,在VC目录里我们把Boost和STLport加入到这个工程里面去。

包含目录:E:\C++\boost_1_56_0;$(IncludePath);E:\C++\STLport-5.2.1\stlport;$(IncludePath)

库目录:E:\C++\boost_1_56_0\bin\vc10\lib;$(LibraryPath);E:\C++\STLport-5.2.1\lib;$(LibraryPath);

这个根据自己的路径改一下就可以了,紧接着编写代码测试。

 #include<iostream>
#include<boost/thread.hpp>
using namespace std; void threadFunc() {
cout<<"This is a Thread function."<<endl;
} int main() {
boost::function<void()> func(threadFunc);
boost::thread t(func);
t.join();
return ;
}

 #include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<rope>
#define inf 0x7fffffff
using namespace std; int main() {
// crope是用来存储char字符的容器
crope crope1("Hello,");
crope crope2("STLport!");
cout<<crope1+crope2<<endl;
cout<<"BaiYiShaoNian"<<endl;
return ;
}

Boost学习总结(一)VS2010环境下编译STLport和Boost的更多相关文章

  1. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  2. 如何在VS2010环境下编译C++程序

    原文:http://blog.csdn.net/gupengnina/article/details/7441203 用 Visual Studio 编写 Visual C++ 程序的第一步是选择项目 ...

  3. VC++2010下编译STLport,Boost

    VC++2010下编译STLport,Boost 最近在想向Boost转移,努力掌握Boost代码的过程中, STLport版本:5.2.1 Boost版本:1.4.6.1 (1.4.7.0也OK) ...

  4. windows下编译和安装boost库

    boost是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库. 获取方式 boost提供源码形式的安装包,可以从boost官方网站下载,目前最新版本是1.59.0. 本机上正好有boos ...

  5. 【转】Centos下编译升级安装Boost

    https://www.xingchenw.cn/article/191 Centos下编译升级安装Boost 首先在官网现在相应的包 https://www.boost.org/users/down ...

  6. Redhat环境下编译安装Google Bazel

    Redhat环境下编译安装bazel 作者:Jack47 目前Google Bazel没有提供各个操作系统下的二进制安装包,只提供源代码,需要我们自己编译安装,详情可以见我翻译的中文版Google B ...

  7. 在SoCEDS环境下编译和更新preloader和uboot程序的方法

    在SoCEDS环境下编译和更新preloader和uboot程序的方法   前面有介绍preloader在HPS boot过程中的的作用,接下来讲述下用户在SoCEDS环境下改如何编译preloade ...

  8. Android 环境下编译FFmpeg

    Android 环境下编译FFmpeg 开发环境:Ubuntu 12.04.2 LTS , android-sdk-linux, android-ndk-r8e 一 .X264 编译 1.    X2 ...

  9. VS2010环境下用ANSI C创建DLL和使用方法(转)

    源:VS2010环境下用ANSI C创建DLL和使用方法 . 创建DLL工程 1.2 创建一个dll工程. 操作:a.文件->新建->项目->Win32控制台应用程序. b.输入工程 ...

随机推荐

  1. ThinkPHP的自动验证常用的正则

    ThinkPHP的自动验证常用的正则   ThinkPHP的自动验证机制是为了进行表单数据验证,验证可以支持function. callback.confirm.equal.unique和regex, ...

  2. 无法启动此程序,因为计算机中丢失 MSVCP120.dll。尝试安装该程序以解决此问题

    重装了下系统(Windows 7),发现先前装的一些软件大部分不能正确启动,更为奇怪的是,即使我重装了该软件,打开的软件界面的时候,报如下错误:“无法启动此程序,因为计算机中丢失 MSVCP120.d ...

  3. source insight研究——快捷键篇

    转:http://blog.csdn.net/ison81/article/details/3510426 关于键盘和鼠标谁更快捷之争,是一个永远被程序员争论的话题.我想大多数人都不会极端的信奉一种操 ...

  4. WinForm-SQL查询避免UI卡死

    使用委托,呵呵. Func<List<VM>> act = () => { SqlDataReader reader = DBHelper.ExecuteReader(s ...

  5. appium 测试模拟器时输入adb devices显示 unauthorized

    https://stackoverflow.com/questions/32132434/set-adb-vendor-keys 也就是点击AVD管理器右边的下拉列表,点击清除数据,再重启虚拟机 0d ...

  6. python3使用configparser解析配置文件

    http://www.jb51.net/article/87402.htm 需要注意的是每一个字段后面的值外面没有引号,切记,自己第一次配置时,加了引号,搞了半天 没找到错误,, 在用Python做开 ...

  7. 一个人的安全部之ELK接收Paloalto日志并用钉钉告警

    起因 通报漏洞后,开发未能及时修复漏洞,导致被攻击,领导说我发现被攻击的时间晚了,由于一个人安全部精力有限未能及时看IPS告警,于是做了个钉钉告警. 本人环境介绍 ubuntu 14.04 pytho ...

  8. Ubuntu16.04下安装googlechrome flash 插件和安装网易云音乐

    一.ubuntu 16.04 下安装完后发现 flash无法播放没有安装flash插件因为 Adobe Flash 不再支持 linux Google 便开发了PepperFlashPlayer来替代 ...

  9. Linux alias理解及设置

    1.alias简介 Linux alias 是命令的一种别称,输入 alias 可以看到像下面这样的结果: alias l.='ls -d .* --color=auto' alias ll='ls ...

  10. Java程序中的Log文件配置

    log4j.properties文件 log4j.rootLogger=info,stdout,logfile #stdout log4j.appender.stdout=org.apache.log ...