Windows下如何使用BOOST C++库 .

本文涉及的产品
图片翻译,图片翻译 100张
文档翻译,文档翻译 1千页
语种识别,语种识别 100万字符
简介: 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 C++

 

我采用的是VC8.0boost_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库,选择你要的包(类型总是MutilthreadMutithread Debug),下载后自动安装。我用VC8.0boost_1_35_0安装在E:/boost。我主要介绍用RegExSignals2个需要编译后才能使用的库,

 

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库,所以,不需要任何boostdll。不要为了贪图小一点尺寸的运行时包而选择使用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;

}

目录
相关文章
|
5月前
|
存储 算法 C++
Windows共享文件:探秘C++实现的B树索引算法奇境
在数字化时代,Windows共享文件的高效管理至关重要。B树算法以其自平衡多路搜索特性,在文件索引与存储优化中表现出色。本文探讨B树在Windows共享文件中的应用,通过C++实现具体代码,展示其构建文件索引、优化数据存储的能力,提升文件检索效率。B树通过减少磁盘I/O操作,确保查询高效,为企业和个人提供流畅的文件共享体验。
|
11月前
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
253 6
|
11月前
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
228 10
|
8月前
|
人工智能 数据处理 C#
AI Dev Gallery:微软开源 Windows AI 模型本地运行工具包和示例库,助理开发者快速集成 AI 功能
微软推出的AI Dev Gallery,为Windows开发者提供开源AI工具包和示例库,支持本地运行AI模型,提升开发效率。
399 13
|
8月前
|
XML 网络协议 API
超级好用的C++实用库之服务包装类
通过本文对Boost.Asio、gRPC和Poco三个超级好用的C++服务包装类库的详细介绍,开发者可以根据自己的需求选择合适的库来简化开发工作,提高代码的效率和可维护性。每个库都有其独特的优势和适用场景,合理使用这些库可以极大地提升C++开发的生产力。
180 11
|
11月前
|
存储 程序员 C++
C++常用基础知识—STL库(2)
C++常用基础知识—STL库(2)
150 5
|
11月前
|
存储 自然语言处理 程序员
C++常用基础知识—STL库(1)
C++常用基础知识—STL库(1)
172 1
|
12月前
|
编译器 API C语言
超级好用的C++实用库之跨平台实用方法
超级好用的C++实用库之跨平台实用方法
135 6
|
12月前
|
缓存 网络协议 Linux
超级好用的C++实用库之套接字
超级好用的C++实用库之套接字
117 1
|
11月前
|
缓存 网络协议 API
C/C++ StringToAddress(字符串转 boost::asio::ip::address)
通过上述步骤和示例代码,你可以轻松地在C++项目中实现从字符串到 `boost::asio::ip::address`的转换,从而充分利用Boost.Asio库进行网络编程。
313 0