zoukankan      html  css  js  c++  java
  • VS2008下直接安装使用Boost库1.46.1版本号

          Boost库是一个可移植、提供源码的C++库,作为标准库的后备,是C++标准化进程的发动机之中的一个。 Boost库由C++标准委员会库工作组成员发起,当中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。 Boost因为其对跨平台的强调,对标准C++的强调,与编写平台无关。大部分boost库功能的使用仅仅需包含对应头文件就可以,少数(如正則表達式库,文件系统库等)须要链接库。但Boost中也有非常多是实验性质的东西,在实际的开发中有用须要慎重。boost 在一些播放软件和音效中指增强,比方Bass Boost,低音增强。

    1.下载最新版的BOOST库,当前最新版为1.46.1(2011-3-12公布),下载链接地址:http://sourceforge.net/projects/boost/files/boost/1.46.1/

    2.解压到硬盘上,其文件夹构造为

    boost_1_46_1/ ................................boost根文件夹 
       index.htm ..................... www.boost.org 站点首页 
       boost/ ..............................全部的Boost头文件 
       lib/ .................................预编译的二进制库 
       libs/ ......................库的Tests, .cpps, docs等等 
         index.html .............................库文档開始处 
         algorithm/ 
         any/ 
         array/ 
                         …more libraries… 
       status/ .........................Boost-wide test suite 
       tools/ ...........有用工具, e.g. bjam, quickbook, bcp 
       more/ .......................................一些文档 
       doc/ ...............................全部库文档的一部分 

    3.打开根文件夹下的index.html,在上面的“Getting Started”有介绍怎么開始使用Boost的,大部分的Boost库仅仅须要包括头文件就可以,少部分须要编译链接。下面是必须编译的Boost库:
        * Boost.Filesystem
        * Boost.GraphParallel
        * Boost.IOStreams
        * Boost.MPI
        * Boost.ProgramOptions
        * Boost.Python
        * Boost.Regex
        * Boost.Serialization
        * Boost.Signals
        * Boost.System
        * Boost.Thread
        * Boost.Wave
    另外,一些库能够是可选择编译的:
        * Boost.DateTime (仅仅有当你须要使用它的to_string/from_string或者serialization features, or if you're targeting Visual C++ 6.x or Borland.
        * Boost.Graph (仅仅有当你倾向解析 GraphViz 文件)
        * Boost.Math (the TR1 and C99 cmath functions)
        * Boost.Random (当你须要使用random_device的时候)
        * Boost.Test (can be used in “header-only” or “separately compiled” mode)
    4.下面開始一个无需编译Boost,直接使用头文件的演示样例:
    ①打开Visual Studio 2008,新建Visual C++project,基于Win32控制台程序,project名为example,确定之后,在弹出的对话框中“应用程序设置”打钩上“控制台应用程序”和“空项目”,点“完毕”;
    ②在“解决方式资源管理器”右击exampleproject,选择“属性”→“C/C++”→“常规”→“附加包括文件夹”,输入刚才解压Boost的文件夹,比方“F:/MyCode/BOOST/boost_1_46_1”,例如以下图所看到的:

    ③右击exampleproject下的“源文件”→“加入”→“新建项”→左边的“代码”→选中右边的“C++文件(.cpp)”,文件名称为example,点“加入”,输入下面代码:

    #include <boost/lambda/lambda.hpp> 
    #include <iostream> 
    #include <iterator> 
    #include <algorithm> 
     
    int main() 

        using namespace boost::lambda; 
        typedef std::istream_iterator<int> in; 
     
        std::for_each( 
            in(std::cin), in(), std::cout << (_1 * 3) << " " ); 

    ④点击菜单条上“生成”→“生成解决方式”,正常的话会编译通过,按F5可看结果,结果例如以下图所看到的:

    这个example代码的功能是从标准输入中读取一系列整型,然后使用boost::lambda使之每一个数乘以3,再把结果写进标准输出。


    5.若是须要用到那些必须得编译链接的库,那么就得组建编译Boost库了。官方文档上介绍说能够使用安装版,或者自己编译源码,特别介绍推荐在Microsoft Visual Studio开发环境下使用安装版,由于安装版能够直接下载,而且带有预编译好的库,节省自己编译源码的麻烦。在这里,由于我使用的是Visual Studio 2008,故欲试试使用安装版。安装版是boostpro站点制作的,安装版不是跟官方的Boost同步的,会比較晚一些时间才会公布出来。当前最新版BoostPro 1.46.1 Installer (197K .exe),下载地址:http://www.boostpro.com/download/

    5.1执行安装版,一路“I Agree”,注意会连接网络,必须放行。之后会弹出选择下载Boost C++库1.46.1的镜像地址,默认就好,继续“Next”,弹出选择默认的编译类型,在左側选择“Visual C++ 9”,在右側选择类型,我们一般所用到的执行库比較多使用多线程,能够在上面的exampleproject看属性,例如以下图所看到的:

    为此,我们仅仅需选择上面四个选项,再依据动态链接和静态链接需求进行选择,例如以下图所看到的:

    接下去就是选择组件安装,没啥问题就默认了,下一步选择路径,接着就開始下载了,例如以下图所看到的:

    由于是连接网络下载,所以得一段比較长的时间,下载完之后就会自己主动安装好,在设定的文件夹下就有个lib文件夹,里面就是编译好的库。
    5.2如今让我们測试一下那些须要链接才干使用的库:
    ①打开上面建立的exampleproject,将其cpp文件代码改为例如以下:

    #include <boost/regex.hpp> 
    #include <iostream> 
    #include <string> 
     
    int main() 

        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; 
        } 

    此时,若是生成解决方式的话,就会提示 fatal error LNK1104: 无法打开文件“libboost_regex-vc90-mt-gd-1_46_1.lib”
    ②右键example解决方式,选择“属性”→“配置属性”→“链接器”→“附加库文件夹”,加入安装版下载好的lib库文件夹路径,例如以下图所看到的:

    ③在菜单条“生成”下拉选择“生成解决方式”,无警告无错误通过。将以下文字保存成文本文档,文件名称为jayne.txt,内容例如以下:

    To: George Shmidlap 
    From: Rita Marlowe 
    Subject: Will Success Spoil Rock Hunter? 
    --- 
    See subject. 

    然后保存到project文件夹的Debug文件夹下。接着Win+R输入CMD进入控制台,cd 转到此Debug文件夹下,输入example < jayne.txt命令,例如以下图所看到的:

    回车之后,文本文档里面Subject主题的内容就会被正则匹配出来,例如以下图所看到的:

    也能够不进入CMD控制台,直接在example解决方式右键“属性”→“调试”→“命令參数”,输入< jayne.txt ,按“确定”,直接Ctrl+F5执行程序,结果例如以下图所看到的:


    6.最后总结,Visual Studio环境的话能够直接下载安装版的,省去麻烦的编译过程,可是不带帮助文档,这点得自己再从官方站点下载了,眼下有汉化Boost文档,另一些不错的中文站点,列举例如以下:
    boost文档汉化:http://code.google.com/p/boost-doc-zh/
    在线汉化版文档:http://www.cppprog.com/boost_doc/

    附上我编译好的库boost1.46.1_VS2008多线程静态库版本号: http://download.csdn.net/source/3147458

  • 相关阅读:
    【题解】【BT】【Leetcode】Populating Next Right Pointers in Each Node
    【题解】【BT】【Leetcode】Binary Tree Level Order Traversal
    【题解】【BST】【Leetcode】Unique Binary Search Trees
    【题解】【矩阵】【回溯】【Leetcode】Rotate Image
    【题解】【排列组合】【素数】【Leetcode】Unique Paths
    【题解】【矩阵】【回溯】【Leetcode】Unique Paths II
    【题解】【BST】【Leetcode】Validate Binary Search Tree
    【题解】【BST】【Leetcode】Convert Sorted Array to Binary Search Tree
    第 10 章 判断用户是否登录
    第 8 章 动态管理资源结合自定义登录页面
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4185057.html
Copyright © 2011-2022 走看看