Windows下如何使用BOOST C++库

我采用的是VC8.0和boost_1_35_0。自己重新编译boost当然可以,但是我使用了

http://www.boostpro.com/products/free

提供的安装工具 BoostPro 1.35.0 Installer (192K .exe) 。我强烈建议使用这个工具来在Windows下安装BOOST库和源文件。

1)使用boost_1_35_0_setup.exe这个工具下载boost库,选择你要的包(类型总是Mutilthread和Mutithread Debug),下载后自动安装。我用VC8.0的boost_1_35_0安装在E:/boost。我主要介绍用RegEx和Signals这2个需要编译后才能使用的库,

2)我在VC8.0下建立了一个Console工程,并为工程添加了VC包含目录:E:/boost/boost_1_35_0,和库目录:E:/boost/boost_1_35_0/lib。不需要指定链接哪个库,因为系统会自动查找的。

3)需要注意的是,我不使用动态链接库,因为一堆的警告,让我恐惧。因此我使用静态的连接库,就是名称前有libboost-xxx样式的库。比如,要使用(注意与下面的名称完全一致):

Debug下:

libboost_signals-vc80-mt-gd-1_35.lib

libboost_regex-vc80-mt-gd-1_35.lib

Release下:

libboost_signals-vc80-mt-1_35.lib

libboost_regex-vc80-mt-1_35.lib

而VC的项目属性是:

Debug:多线程调试 DLL (/MDd),不采用Unicode

Release:多线程 DLL (/MD),不采用Unicode

尤其要注意,使用工具下载的时候,总是下载:

Mutilthread  和  Mutithread Debug

这样的好处是,我们是链接到静态的boost库,所以,不需要任何boost的dll。不要为了贪图小一点尺寸的运行时包而选择使用boost的动态库,起码我看那一堆的警告就不寒而栗。

下面就是个小例子,没任何警告,一切如期:

///////////////////////////////////////////////////////////////////////////////

// main.cpp

//

// 使用BOOST C++标准库

//

//

// 2008-7-10 cheungmine

//

///////////////////////////////////////////////////////////////////////////////

#include <boost/lambda/lambda.hpp>

#include <boost/regex.hpp>

#include <iostream>

#include <cassert>

#include <boost/signals.hpp>

struct print_sum {

void operator()(int x, int y) const { std::cout << x+y << std::endl; }

};

struct print_product {

void operator()(int x, int y) const { std::cout << x*y << std::endl; }

};

//

// 主程序

//

int main(int argc, char** argv)

{

boost::signal2<void, int, int, boost::last_value<void>, std::string> sig;

sig.connect(print_sum());

sig.connect(print_product());

sig(3, 5);

std::string line;

boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );

while (std::cin)

{

std::getline(std::cin, line);

boost::smatch matches;

if (boost::regex_match(line, matches, pat))

std::cout << matches[2] << std::endl;

}

return 0;

}

Windows下如何使用BOOST C++库 .的更多相关文章

  1. Windows下安装PCL点云库

    原文链接:http://blog.csdn.net/u012337034/article/details/38270109 简介:         在Windows下安装PCL点云库的方法大概有两种: ...

  2. OpenGL学习之windows下安装opengl的glut库

    OpenGL学习之windows下安装opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装.  Windows环境下的GLUT下载地址:(大小约为15 ...

  3. [爬虫]Windows下如何安装python第三方库lxml

    lxml是个非常有用的python库,它可以灵活高效地解析xml与BeautifulSoup.requests结合,是编写爬虫的标准姿势. 但是,当lxml遇上Windows,简直是个巨坑.掉在安装陷 ...

  4. Windows下如何安装python第三方库lxml

    lxml是个非常有用的python库,它可以灵活高效地解析xml,与BeautifulSoup.requests结合,是编写爬虫的标准姿势. 参考 Windows下如何安装python第三方库lxml ...

  5. windows下编译安装BOOST

    boost的编译和使用,经过搜集资料和总结,记录成文.感谢文后所列参考资料的作者. 1 下载 地址:http://sourceforge.net/projects/boost/files/boost/ ...

  6. Python调用windows下DLL详解 - ctypes库的使用

    在python中某些时候需要C做效率上的补充,在实际应用中,需要做部分数据的交互.使用python中的ctypes模块可以很方便的调用windows的dll(也包括linux下的so等文件),下面将详 ...

  7. [转]Windows下使用VS2015编译openssl库

    转自:http://blog.csdn.net/alger_magic/article/details/52584171 目标:编译vs环境下openssl库 工具: 1. 编译环境win10+vs2 ...

  8. 在windows下codeblocks中配置pthread库

    转自:http://blog.csdn.net/u013172314/article/details/50846198 如果添加方法不正确,可能会出现pthread_create’未定义的引用,所以下 ...

  9. python27 windows 下三种安装第三方库的办法

    一.使用easy_install C:\Python27\Scripts 下有 easy_install.exe .例如我要安装 beautifulsoup,可以从 cmd 进入该目录,直接运行: e ...

随机推荐

  1. 【转载】颜色空间-RGB、HSI、HSV、YUV、YCbCr的简介

    转载自缘佳荟的博客. 颜色通常用三个相对独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间.而颜色可以由不同的角度,用三个一组的不同属性加以描述,就产生了不同的颜色空间.但 ...

  2. 第五十篇、OC中常用的第三插件

    1.UIViewController-Swizzled 当你接手一个新项目的时候,使用该插件,可以看到控制器的走向,当前控制是哪个,下一个跳转到哪里 2. 一个Xcode小插件,将Json直接转成模型 ...

  3. Cocos2d-x开发中C++内存管理

    由于开始并没有介绍C++语言,C++的内存管理当然也没进行任何的说明,为了掌握Cocos2d-x中的内存管理机制,是有必要先了解一些C++内存管理的知识.C++内存管理非常复杂,如果完全地系统地介绍可 ...

  4. ASP.NET WEB API 初探

    本文初步介绍如何简单创建一个ASP.NET Web Api 程序. Web Api 顾名思义就是一个Api接口,客户端可调用此接口进行业务操作.此类应用与 ASP.NET  web服务(即使用扩展名. ...

  5. Linux学习三部曲(之三)

    今天用linux的时候,想到在windows客户端上传文件到linux服务端. 下面介绍一种方法. 可以通过SecureCRT上传.下载文件(使用sz与rz命令). 1. 安装 lrzsz 在Secu ...

  6. 项目中的那些事---JavaScript

    一.String.charAt(index) 作用:获取字符串指定索引位置的字符 注意:index的值是0~(字符串长度-1)之间的值 <script type="text/javas ...

  7. 有道单词本添加js实现自动阅读单词

    个人比较习惯使用有道,使用了一段时间,背单词的时候很不方便   而有道单词客户Duan没有自动阅读的功能,  本菜用强大的js实现了简单的自动下一个单词的功能, 方法:第一步打开有道路径下的" ...

  8. Popup window

    function createLoadingDialog() { $("#loadingDialog").dialog({ autoOpen: false, closeOnEsca ...

  9. Jxl操作excel的demo

    网上很多例子,都是用Jxl读或者写excel,本文实现的功能就是将数据源in.xls的第几行第几列数据写入到out.xls的第几行第几列,不覆盖out.xls其他原有的数据. 需要导入的包:jxl.j ...

  10. phpcms v9 自定义伪静态的分页函数

    因为.这个页面还没做好..等做好了..再给大家演示...... 调用方法:$page_attr=pages_open($num[0]['cun'],$get_page,$max_page,'http: ...