欢迎
欢迎来到 Boost 库 !你已经完成了本教程的时候,你会至少有点熟悉的 Boost 发行内容以及如何去使用它。
这里是什么
本文档旨在是极其温柔的介绍,所以我们包括相当数量的可能已经非常熟悉你的材料。为简单起见,我们也留下中级和高级用户可能会想一些的信息。在本文档末尾,我们会请您到可以帮助你追求这些主题进一步的资源。
正文前书页
我们使用一个排版约定可能不会立即明显︰斜体文本示例中的是作为一个描述性的占位符的东西,通常你会提供的信息。例如︰
$ echo "My name is your name"
echo "My name is your name"
在这里你应该想象"你的名字"文本替换为您的真实姓名。
准备好了吗?
我们走吧!
在 Windows 上入门
Cygwin和MinGW用户注意
如果您计划使用您从 Windows 命令提示符的工具,你在正确的地方。如果你打算建立从Cygwin bash shell,你实际上跑步在 POSIX 的平台上,应该按照入门对 Unix 变体。其他命令外壳, MinGW下面,如不支持 — — 他们可能或可能不工作。
索引
- 索引
1 获得提升
2 Boost 发行
3 仅有文文件的库
4 建立一个简单的程序,使用 Boost
4.1 建立从 Visual Studio IDE
4.2,或从命令提示符处生成
4.3 错误和警告
5 准备使用提升图书馆二进制文件
5.1 简化生成来源
5.2 或生成二进制文件来源
5.2.1 安装 Boost.Build
5.2.2 确定你的工具集
5.2.3 选择生成目录
5.2.4 调用b2
5.3 预期生成输出
5.4 在的情况下生成错误
6 到 Boost 库链接您的程序
从 Visual Studio IDE 中的 6.1 链接
6.2 版或从命令提示符下的链接
6.3 图书馆命名
6.4 测试程序
7 结论和进一步的资源
搞一份刺激的最可靠方法是下载boost_1_63_0.7z或boost_1_63_0.zip并解压它来安装完整的 Boost 发行。一
2 Boost 发行
这是最终的目录结构示意图︰
boost_1_63_0\ .................The “boost root directory” 根目录
index.htm ......... A copy of www.boost.org starts here www.boost.org 的副本从这里开始 boost\ ......................... All Boost Header files 所有头文件目录 lib\ ..................... precompiled library binaries 重新编译的库二进制文件 libs\ ............ Tests, .cpp s , docs, etc., by library 测试、源代码、文档等库的形式 index.html ........ Library documentation starts here 库的文档入门 algorithm\ any\ array\ …more libraries… status\ ......................... Boost-wide test suite 全升压测试套件 tools\ ........... Utilities, e.g. Boost.Build, quickbook, bcp 工具集 more\ .......................... Policy documents, etc. 策略文档 doc\ ............... A subset of all Boost library docs 所有库文档的子系统它是重要的是要注意以下几点︰
-
在文档和邮件列表中,(经常C:\Program Files\boost\boost_1_63_0)根目录的路径有时被称为$BOOST_ROOT。
-
若要编译任何刺激方案中,您需要包含在你#include路径提高\子目录的目录。具体步骤为建立在 Microsoft Visual Studio 中的#include路径遵循本文档; 稍后的如果您使用另一个 IDE,有关说明请参阅您的产品文档。
-
因为所有刺激的头文件具有.hpp扩展名的文件,和促进根的$BOOST_ROOT\子目录中生活,#include指令将看起来像︰
#include <boost/whatever.hpp>
whatever.hpp>或
#include "boost/whatever.hpp"
whatever.hpp"根据自己的喜好使用尖括号有关包括。甚至 Windows 用户可以的 (和可移植性的原因,大概应该) 使用正斜杠中的#include指令;您的编译器并不关心。
-
不要被doc\子目录所困扰;它只包含 Boost 文档的子集。入手libs\index.html ,如果你正在寻找的全貌。
标题组织
Boost 库头文件的组织并不完全统一,但大多数库遵循几个模式︰
一些旧的库和大多数很小库置于所有公共头文件直接放入boost\.
大多数库的头文件存在于boost\.子目录中,以库命名的后面。例如,你会发现在 Python 库def.hpp头
boost\python\def.hpp.
在boost中,一些库有在"代理头文件, 包含了其他所有的头文件。例如, Boost.Python的代理头文件
boost\python.hpp.
大多数图库在boost\子目录中放置自己的文件夹,称为detail\ 或者aux_\。不要指望在这些目录中发现任何可以使用。
3 仅有头文件的库
很多人想要知道的第一件事是,"如何编译Boost?",好消息是,通常情况下,没有必要编译。不需要编译是什么意思?
大多数的 Boost 库是仅有头文件︰ 他们包括完全的头文件包含模板和内联函数,并且无需单独编译的库二进制文件或特殊待遇链接时。
那必须单独编译的唯一的 Boost 库是︰
Boost.Chrono
Boost.Context
Boost.Filesystem
Boost.GraphParallel
Boost.IOStreams
Boost.Locale
Boost.Log (见构建文档)
Boost.MPI
Boost.ProgramOptions
Boost.Python (见Boost.Python 构建文档之前构建和安装它)
Boost.Regex
Boost.Serialization
Boost.Signals
Boost.System
Boost.Thread
Boost.Timer
Boost.Wave
几个库有可选单独编译的二进制文件︰
Boost.DateTime具有二进制组件,只需时如果你使用的其to_string/from_string或序列化的功能,或如果你的目标 Visual c + + 6.x 或 Borland。
Boost.Graph也有二进制组件,只需时如果你打算GraphViz 文件解析.
Boost.Math具有二进制组件为 TR1 和 C99 cmath 功能。
Boost.Random有一个二进制的组件,它只需要如果你使用的random_device.
虽然,可以在"仅标题"或"单独编译"模式中,使用Boost.Test 单独的编译推荐用于严重.
Boost.Exception提供了非侵入性执行 32 位 _MSC_VER exception_ptr = = 1310年和 _MSC_VER = = 1400,需要单独编译的二进制文件。这是由 #define BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR 启用。