`

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:boostboost_1_35_0,和库目录:E:boostboost_1_35_0lib。不需要指定链接哪个库,因为系统会自动查找的。

  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库

    在Windows环境下,安装和使用Boost库可能需要一些特别的步骤,尤其是对于那些不熟悉编译过程的开发者来说。 标题"windows下编译好的boost库"意味着这个压缩包包含了已经为Windows平台预先编译好的Boost库文件。通常...

    boost库1.68版本windows下编译的dll和lib库

    在本案例中,我们关注的是Boost库的1.68版本,该版本已在Windows环境下使用Visual Studio 2017进行编译,并生成了用于动态链接(dll)和静态链接(lib)的库文件。 首先,我们要理解动态库(dll)和静态库(lib)的...

    arm架构下的boost库文件

    在ARM架构下使用Boost库,可以充分利用ARM处理器的特性,为嵌入式系统、移动设备或服务器提供强大的功能支持。本文将详细介绍Boost库在ARM架构下的编译过程以及如何在项目中应用。 首先,让我们了解一下Boost库的...

    boost 1.77.0 Windows平台开发包,静态库版本

    Boost 1.77.0是该库的一个稳定版本,专为Windows平台设计,包含了静态库版本,这对于那些希望在应用程序中静态链接Boost库的开发者来说是极为有用的。 在Boost 1.77.0的Windows开发包中,你将找到两个主要目录:...

    c++ boost库1.73.0 boost最新版

    Boost库使用Boost License来授权使用,根据该协议,商业的非商业的使用都是允许并鼓励的。 Boost社区建立的初衷之一就是为C++的标准化工作提供可供参考的实现,Boost社区的发起人Dawes本人就是C++标准委员会的成员之...

    boost库帮助文档

    这份"boost库帮助文档"将是你深入了解和使用Boost库的重要资源。 Boost库包含了多种组件,每种都有其独特的功能和用途: 1. **智能指针**:如`shared_ptr`、`unique_ptr`和`weak_ptr`,它们提供了比原始指针更安全...

    c++_boost库下载学习

    5. **跨平台**:Boost库可以在多种操作系统(如Windows、Linux、macOS等)上运行,这极大地降低了移植成本。 #### 如何下载与安装Boost库 下载Boost库有几种方式,最直接的方法是从官方网站或者其他可靠的第三方...

    win32_vs10下boost库

    在Windows系统下,...总的来说,"win32_vs10下boost库"的使用涉及到C++编程、Windows开发环境、编译配置等多个方面,熟练掌握Boost库能够显著提升开发效率,同时也能帮助开发者更好地理解和利用C++语言的强大功能。

    C++ Boost 库中文文档

    **C++ Boost库**是C++编程语言的一个开源库集合,它为标准库提供了一系列的扩展,涵盖了诸如并发、算法、容器、智能指针、序列...无论是初学者还是经验丰富的专业开发者,都应该了解并考虑在适当的情况下使用Boost库。

    boost库boost库boost库boost库

    1. **跨平台**:Boost库在多种操作系统上都得到了广泛的测试和验证,包括Windows、Linux、Mac OS等,确保了代码的可移植性。 2. **兼容性**:Boost库与C++标准库相兼容,许多Boost库后来被采纳为C++标准库的一部分...

    windows已编译好的boost库 在xp下测试成功

    在Windows XP环境下使用Boost库,开发者需要注意以下几点: 1. **兼容性**:尽管Boost库在XP下测试成功,但较新的库版本可能不再支持XP,因为微软已经停止对XP的技术支持。因此,选择合适的Boost版本至关重要,确保...

    Boost库导引 ---

    Boost库的一大优势是它的高度跨平台性,能够在多种操作系统和编译器上无缝工作,包括Windows、Linux、Mac OS等。 8. **容器与迭代器增强** `Boost.Fusion`和`Boost.MPL`库提供了增强的容器和迭代器,使得编写更...

    boost 1.62 windows mingw gcc 5.3静态库

    MinGW(Minimalist GNU for Windows)是一个GCC(GNU Compiler Collection)的集合,它允许在Windows环境下使用GCC进行编译。MinGW 5.3是这个集合的一个特定版本,提供了GCC 5.3编译器,该编译器支持C++11和C++14的...

    基于boost.asio库的windows C++ https/ssl server client 含完整boost和openssl库 编译环境 测试证书

    基于官网的boost.asio的HTTPS/SSL例子,包括server和client端,完整的windows VS编译环境,包含了完整的boost库和openssl库,编译配置测试说明文档,测试用的server.crt和server.key证书文件。如需linux版本,和自己...

    win10下安装boost库遇到问题记录

    在visual studio tool(这个工具我是在下面图片找到的)里面,用cd xxx找到boost解压的位置,然后用bootstrap.bat,我遇到了下面这个错误: Failed to build Boost.Build engine. Please consult bootstrap.log for ...

    C++ BOOST 库中文指南

    Boost库使用最先进的C++特性进行实现,并且具有良好的跨平台兼容性,能够在多种操作系统上运行,包括Windows、Linux等。 1.2 **开发过程** Boost库的开发过程非常开放和透明,鼓励社区参与贡献。这使得Boost库不仅...

    在VS2005中安装BOOST库

    在 Windows 下,BOOST 库使用自己的 bjam 工具通过命令行进行编译,因此需要设置好 VC 的编译器环境变量。如果从 VS2005 的工具菜单进入命令提示窗口,需要运行 Visual Studio 中 C++ 目录下的环境 vcvarsall.bat ...

    boost1.71_MinGW7.3(32/64位动态库、静态库)

    标题中的"boost1.71_MinGW7.3"指的是Boost库的1.71版本,这是专门为使用MinGW7.3编译器的C++开发环境编译和优化的。 MinGW (Minimalist GNU for Windows) 是一个可移植的C/C++开发环境,它将GCC(GNU Compiler ...

Global site tag (gtag.js) - Google Analytics