【问题标题】:How to get Boost libraries binaries that work with Visual Studio?如何获取适用于 Visual Studio 的 Boost 库二进制文件?
【发布时间】:2011-01-04 05:32:43
【问题描述】:

这是您可能在各种形式的“网络”中看到的一个问题......在这里总结一下,让您在谷歌上搜索愉快:-)

我有一个使用 Microsoft 的 Visual Studio 构建并使用来自 boost (http://www.boost.org/) 的功能的项目。我已经让我的项目使用了一些仅作为标头的库(不需要链接二进制库)。如何或在哪里可以获得其他库的 Windows 二进制文件?

【问题讨论】:

标签: c++ windows visual-studio boost


【解决方案1】:

访问二进制库有三种不同的选项:

1) 从源代码构建它们。
进入 boost 目录并运行:

    bootstrap
    .\bjam

或者变得更复杂,做一些类似的事情:

    bjam --stagedir="c:\Program Files\Boost" --build-type=complete --toolset=msvc-9.0 --with-regex --with-date_time --with-thread --with-signals --with-system --with-filesystem --with-program_options stage

2) 使用 BoostPro 安装程序 (http://www.boostpro.com/download) 获取您需要的特定库。
这非常好,因为它只下载和安装你说你想要的文件。但是,它从来没有可用的最新版本,也没有 64 位二进制文​​件。

3) 下载整套库 (http://boost.teeks99.com)
易于使用,操作简单,但库很大(解压后 7GB!)。
编辑 2013-05-13:我的构建现在可以直接从 sourceforge page 获得(从 1.53 开始)。

【讨论】:

  • 你为什么要问一个问题,然后在 5 分钟后对你自己的问题提供一个 3 分的答案?您只是通过提出简单的问题然后自己回答来培养代表吗?
  • 我见过很多人以不同的形式问这个问题,有时不知道怎么问。我只是想以一种清晰的方式把它拿出来,这样任何人都可以找到它。
  • 我看不出你在做什么有什么问题。尽管也许您应该明确地说这是其他问题的合并,因此人们可以自行决定是否要投票支持您的编辑工作。
  • 是的,我在原始问题中为此添加了评论。另外,在元网站上,我发现了关于这个礼仪的问题:meta.stackexchange.com/questions/12513/…
  • 我记得像 (1) 一样(构建自己),我最终使用了大量的磁盘空间。如果您构建所有内容,我猜(3)的磁盘空间类似于(1)的磁盘空间。
【解决方案2】:

conda-forge(自动跨平台云构建工具和包管理器)为所有主要平台提供二进制文件:

https://anaconda.org/conda-forge/boost

您现在可以从以下位置获取 Boost 二进制文件:

http://sourceforge.net/projects/boost/files/boost-binaries/

但是他们没有指定是发布版还是调试版。

【讨论】:

  • 这些与boost.teeks99.com 的相同(我已成为官方二进制构建器)。它们包含调试版本和发布版本。
【解决方案3】:

我以前更喜欢使用 BoostPro 来安装需要单独编译的 Boost 库,例如 Boost.Regex,但可惜这似乎不再受支持。

转到Boost Getting Started for Windows 页面,它会告诉您section 5.2.1 中您需要知道的几乎所有内容。这是一个simple guide(带有屏幕截图),向您展示如何开始。

总而言之,您需要在命令提示符下运行以下命令:

> boostrap.bat
> .\b2

运行 .\b2 命令可能需要相当长的时间。

然后在您的 Visual Studio 项目属性中,您需要:

  1. 选择 C/C++ > 常规选项卡并设置附加包含目录字段
  2. 选择链接器 > 常规选项卡并设置附加库目录字段。

对于第 2 步,这通常是 Boost 根目录的 stage\lib 目录。

【讨论】:

    【解决方案4】:

    自己构建它们。从 boost 网站下载一个 bjam 可执行文件,然后从 boost src 根目录执行以下命令:

    bjam --toolset=msvc --build-type=complete 定义=_BIND_TO_CURRENT_MFC_VERSION=1 定义=_BIND_TO_CURRENT_CRT_VERSION=1 阶段

    然后去喝杯咖啡或让它通宵运行。之后,您会在“阶段”文件夹中获得结果。将此目录添加到选项->项目和解决方案->VC++ 目录中的“库文件”中。

    【讨论】:

    【解决方案5】:

    1) 导航到 boost 目录

    2) 运行引导程序 - 注意:此时 bjam 似乎不起作用,但也许我做错了什么

    3) 运行 .\b2 这应该将 boost 默认设置为它检测到的主要工具集,或者可能是最新的 Windows 工具集,所以对我来说这是 msvc11.0

    然后你等一会儿,瞧!

    如上所述,只需包含升压库的目录 (D:\boost_1_5x_x\stage\lib) 并包含您在相应的附加目录字段中使用的目录。您不一定需要从“C/C++”或“链接器”执行此操作。有一个标题 VC++,其中包含所有相关字段。如果您经常使用 boost,您还可以将它们包含在继承的目录列表中

    **edit:才意识到上面的帖子概述了这一点。非常抱歉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多