15

过去我听过很多关于 Boost 的好评,我想我会试一试。所以我从 Ubuntu 9.04 的包管理器中下载了所有需要的包。现在我很难找出如何实际使用这些该死的库。

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

4

8 回答 8

18

同意;boost网站大部分都有很好的教程,按子库分类。

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

#include <boost/shared_ptr.hpp>

并像往常一样编译。无需将库路径添加到您的 g++ 命令,或指定 -llibboost。只要 boost 目录在您的包含路径中,就一切就绪。

从升压文档:

唯一需要编译和链接的库如下: 唯一必须单独构建的 Boost 库是:

  • Boost.文件系统
  • Boost.IOStreams
  • Boost.ProgramOptions
  • Boost.Python(在构建和安装之前请参阅 Boost.Python 构建文档)
  • 升压正则表达式
  • Boost.序列化
  • 升压信号
  • Boost.Thread
  • 升压波

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

  • Boost.DateTime 有一个二进制组件,仅当您使用其 to_string/from_string 或序列化功能,或者您的目标是 Visual C++ 6.x 或 Borland 时才需要该组件。
  • Boost.Graph 还有一个二进制组件,仅当您打算解析 GraphViz 文件时才需要它。
  • Boost.Test 可以在“仅头文件”或“单独编译”模式下使用,但建议在严重使用时单独编译。

因此,如果您正在使用列出的库之一,请使用入门指南来帮助您开始编译和链接到 Boost。

于 2009-05-11T03:20:58.500 回答
5

Boost 网站有一些很好的教程,它们只是有点隐藏。

于 2009-05-11T02:50:52.510 回答
3

图书馆文档好坏参半。有些很好,但有些更多的是参考而不是指南。(部分)Boost 库的最佳指南是Beyond the C++ Standard Library一书。至少,引言给出了许多库的一段描述。从那里,您可以决定哪个库对您当前的需求最重要,如果它在书中,请阅读其中的章节,或阅读网站上的文档。

如果您阅读德语,则有一个很好的在线指南。谷歌翻译做得很好,像我这样不会说话的人也能理解。

此外,除非您有丰富的 C++ 经验,否则我会先从更简单的库(例如 smart_ptr、tuple、conversion、tokenizer、regex、date_time、test)开始,然后再尝试更复杂的库(bind、variant、any),或真正先进的(概念、MPL、Fusion)。

于 2009-05-11T15:21:59.520 回答
3

使用基于 Ubuntu 的 Easypeasy 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;

据我了解,这是仅标题功能。我还没有使用任何需要更改链接时间的东西。

于 2009-05-24T14:08:27.647 回答
1

我只是在看那个德语 boost guide,发现也有一个英文的(同一本书)。看起来还不错,刚看了介绍页,很有用

于 2012-05-06T21:23:24.107 回答
0

到目前为止,我读过的最好的教程是这两本书:

于 2012-05-07T02:51:58.770 回答
-2

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

于 2009-05-11T02:49:24.073 回答
-2

Boost 既不是编程语言也不是应用程序框架——因为它只是库的集合,所以没有 Boost 'Hello World' 程序这样的东西。Boost 中的大多数库或多或少都可以独立使用,它们的大小从一个函数到可以独立的大量库不等。

了解 Boost 的最佳方式就是在编写新代码时尝试使用它。smart_ptr尽可能使用;下次你想做编译时工作时使用 MPL。Boost 有很多种类,但您可能应该开始查看实用程序部分;这些是最轻量级和最常用的库。

于 2009-05-11T08:01:05.763 回答