代码之家  ›  专栏  ›  技术社区  ›  Kredns

在ubuntu上使用Boost

  •  15
  • Kredns  · 技术社区  · 17 年前

    有谁知道一个关于Boost的好教程,从Hello World一直到高级主题,还包括如何在ubuntu上使用g++编译程序?

    8 回复  |  直到 13 年前
        1
  •  18
  •   Kyle Simek    17 年前

    the boost website

    至于编译,库实现的80%都是在头文件中定义的,这使得编译变得微不足道。例如,如果您想使用共享的\u ptr,只需添加

    #include <boost/shared_ptr.hpp>
    

    从boost文档中:

    需要编译和链接的库只有以下几个:必须单独构建的Boost库只有以下几个:

    • Boost.programmoptions
    • Boost.Regex
    • 推进线
    • 加油,挥手

    一些库具有可选的单独编译的二进制文件:

    • Graph还有一个二进制组件,只有在您打算解析GraphViz文件时才需要它。
    • Test可以仅在header模式下使用,也可以在单独编译模式下使用,不过对于严重的使用,建议单独编译。

    Getting Started guide 开始编译并链接到Boost。

        2
  •  5
  •   David Cooper    17 年前

    Boost网站有一些很好的教程,它们只是 hidden.

        3
  •  3
  •   AFoglia    17 年前

    图书馆的文档是一个混杂的包。有些是好的,但有些更像是参考而不是指南。这本书是(某些)Boost库的最佳指南 Beyond the C++ Standard Library

    如果你读德语,有一个 good online guide . 谷歌翻译做得很好,像我这样不会说话的人都能听懂。

    另外,除非你有很多C++的经验,我先从简单的库开始(例如StasyGypTR、tuple、转换、ToKeNeisher、ReGEX、DATEJOTE、test),然后再尝试更复杂的(绑定,变体,任何),或者真正高级的(概念,MPL,融合)。

        4
  •  3
  •   CW Holeman II    16 年前

    使用基于Ubuntu的EasyPasy 1.1(适用于上网本),我可以使用Synaptic Package Manager安装libboost-dev,我相信,只需添加:

    #include "boost/foreach.hpp"
    

    我能够替换现有应用程序中的现有行(该应用程序有一个与boost无关的Ask类):

    for (std::vector<Ask*>::iterator ii=ui.begin(); ii!=ui.end(); ++ii)
        std::cout << (*ii)->prompt() << (*ii)->answer() << std::endl;
    

    BOOST_FOREACH (Ask* ii, ui)
         std::cout << ii->prompt() << ii->answer() << std::endl;
    

    据我所知,这是一个标题唯一的功能。我还没有使用任何需要改变链接时间的东西。

        5
  •  1
  •   Balaji    14 年前

    english 还有一本(同一本书)。它看起来很不错,我刚刚读了一些非常有用的介绍页面

        7
  •  -2
  •   lothar    17 年前

    这些库附带文档,其中许多都有教程作为文档的一部分。开始读吧。

        8
  •  -2
  •   coppro    17 年前

    了解Boost的最好方法就是在编写新代码时尝试使用它。使用 smart_ptr