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. ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码

    实用类:UtilityClass 包含如下方法 判断对象是否为空或NULL,如果是空或NULL返回true,否则返回false 验证手机号是否正确 13,15,18 验证邮箱 验证网址 MD5加密,返 ...

  2. Unity3D项目实战笔记(10):Unity3D编译IPA的PostEvents–节约时间利器

    最近,SDK支付等接入差不多了,就从Unity3D生成IPA (企业版License), 然,需要手动执行的PostEvents竟然多大10项+, 这些我默默的承受了1周时间,每次约浪费20分钟-额外 ...

  3. UVALive 6811 Irrigation Line(二分图最小点覆盖--匈牙利算法)

    题意:求最少的线可以覆盖一个由0.1两种数字组成的图中所有的1. eg: 只需要两条线即可. 分析: 1.先为上述例子的行列标号 2.若图中数字为1,则代表该数字所在的行与列有关联. 例如第r1行第c ...

  4. 'WinMain' : function cannot be overloaded

    Create a MFC Application (UNICODE), paste following code in one of your cpp file. int APIENTRY WinMa ...

  5. STAD Parameters

    STAD related parameters:   1. stat/file  -- define the file name of the actual STAD content – defaul ...

  6. java学习笔记_GUI(1)

    import javax.swing.*; public class Gui { public static void main(String[] args) { JFrame frame = new ...

  7. d3 之deal with data

    之前说慢慢写有关D3的笔记,结果做完那个拓扑图就没写了,今天发现关于d3的用法有点遗忘.感觉有回顾一遍的必要. 之前的序对D3有一个简单的介绍,下面就做一些细节的东西.主要是贴代码,顺带注释和效果图. ...

  8. Mysql数据库迁移 Ubuntu14.04

    1. 停止数据库服务 sudo service mysql stop 2. 创建数据迁移目标文件夹(实际应该是挂载到新硬盘上) cd /var/lib ls -l drwx------  6 mysq ...

  9. 使用CSS修改HTML5 input placeholder颜色( 转载 )

    问题:Chrome支持input=[type=text]占位文本属性,但下列CSS样式却不起作用: input[placeholder], [placeholder], *[placeholder] ...

  10. android eclipse集成环境

    Android开发工具(ADT)是一个插件为Eclipse IDE,它的目的是给你一个强大的,集成的环境来构建Android应用程序. ADT扩展了Eclipse的功能使用Android SDK工具, ...