【问题标题】:How to build boost Version 1.58.0 using Visual Studio 2015 (Enterprise)如何使用 Visual Studio 2015(企业版)构建 boost 版本 1.58.0
【发布时间】:2015-10-12 13:05:24
【问题描述】:

我喜欢使用(新)Visual Studio 2015(企业版)构建 boost 1.58.0。过去我是这样进行的:

  1. www.boost.org下载boost 1.58.0
  2. 解压文件(例如C:\thirdparty\vs2013\x64\boost_1_58_0
  3. 启动 Visual Studio 2013 x64 命令提示符 (VS2013 x64 Native Tools Command Prompt)
  4. 更改为 boost 目录(例如 cd C:\thirdparty\vs2013\x64\boost_1_58_0
  5. 执行.\bootstrap.bat
  6. 执行.\b2 -j8 --toolset=msvc-14.0 address-model=64 --build-type=complete stage
  7. b2 -j8 --toolset=msvc-12.0 address-model=64 --build-type=complete stage --with-python

但是在 VS2015 中没有 VS2015 命令提示符。

还缺少我有时用来设置 VS2013 命令提示符的 vcvarsall.bat

如何使用VS2015编译boost源代码?

【问题讨论】:

  • 刚刚发现 VS2015 的开发人员命令提示符... mmh...
  • 您很可能会遇到“未知编译器版本”问题,因为 boost 1.58 不了解 VS2015。如果是这样,请关注this
  • 您还没有说出您实际遇到的问题。你有错误吗?什么错误?您是否考虑过在 Boost User 邮件列表中询问?
  • @GrafikRobot 我正在尝试构建 Qt,但我遇到了同样的问题。找不到快捷方式。
  • @GrafikRobot:我应该使用哪个命令或工具来成功运行 bootstrap.bat?

标签: c++ boost visual-studio-2015 b2


【解决方案1】:

不幸的是,Boost documentation 非常冗长,因为它试图处理所有操作系统和环境。此外,它会跳过一些节省时间的细节。下面是专门针对带有 Boost 1.61 的 VS2015 的快速步骤。

首先,让我们了解 Boost 是一个拥有大量贡献者的庞大库。因此,所有 Boost 代码分为两部分:仅头文件库和头文件+cpp 库。前者不需要编译。您只需将它们包括在内,您就完成了。后来确实需要建设。您通常不需要担心额外的构建步骤,尽管只设置一次是个好主意。

仅使用 Boost 标头库

  1. 以 7z 格式下载 Boost archive 并使用 7Zip 解压缩。 zip 文件比 7z 文件大得多,使用 Windows Explorer 提取可能需要 20 多分钟,而使用 7Zip 则需要 5 分钟。
  2. 创建文件夹 c:\Program Files\boost。将提取的 boost_1_61_0 文件夹复制到此文件夹中。这个确切的路径不是必需的,但我们将在此处使用它。
  3. 在您想使用 Boost 的任何 VC++ 项目中,转到该项目的右键单击属性 > C/C++ > 常规 > 附加包含目录并添加路径 C:\Program Files\boost\boost_1_61_0 (不带引号)。

现在您应该可以通过使用 #include <boost/thread/mutex.hpp> 之类的语句来使用大多数 Boost 库。

使用 Boost Header+CPP 库

这些示例是 Boost.Chrono、Boost.Filesystem、Boost.GraphParallel、Boost.IOStreams、Boost.Locale、Boost.Regex、Boost.Thread、Boost.System 等。除非你是使用这些库,不需要以下步骤。

  1. 首先确保您没有安装 Windows Driver Kit。如果你有,请暂时卸载它,因为它很可能已经弄乱了包含路径,这会导致 Boost 的构建脚本失败。
  2. 以管理员身份调用 VS2015 x64 Native Tools 命令提示符。
  3. CD 到 C:\Program Files\boost\boost_1_61_0 然后运行 ​​bootstrap.bat。
  4. 运行 .\b2
  5. 运行 .\b2 variant=debug,release link=static runtime-link=static address-model=64
  6. 剪切文件夹 C:\Program Files\boost\boost_1_61_0\stage\lib 并将其复制到 C:\Program Files\boost\boost_1_61_0\lib。
  7. 对于要使用这些库的 VC++ 控制台项目,右键单击属性 > 链接器 > 常规 > 附加库目录并添加路径 C:\Program Files\boost\boost_1_61_0\lib。对于 VC++ 库项目,您可以在“属性”>“图书馆员”中找到相同的设置。

现在一切就绪!

注意:@Arnaud 的回答解决了有关找不到命令提示符的原始问题。以上是更明确的 Boost 安装步骤以及下面的步骤 #5,以获取有关命令提示符的更多详细信息。

【讨论】:

  • 不错的答案,但与“但在 VS2015 中没有 VS2015 命令提示符”的问题无关。
  • 不幸的是,对于任何搜索如何将 Boost 与 VC++ 结合使用的人来说,这个问题都是最重要的。您的问题和其他答案已经描述了该过程,但并不完全准确。最初我想在 cmets 中进行更正,但它太长了,无法适应,所以我创建了新的答案。以上#5也与您的问题有关。无论如何,我在您的原始问题上添加了注释。
  • 还可以查看 bitbucket.org/Vertexwahn/bluego - 使用 Visual Studio 2010/12/13/15 构建 Boost 库。您只需要启动应用程序,选择您的配置并点击构建按钮 - 其他一切都会自动运行。
【解决方案2】:

我尝试安装 Qt,但遇到了同样的问题:缺少 vcvarsall.bat。 就我而言,问题在于我取消选中了 The Visual C++ Common Tools。

我修改了我的 VS 2015 安装并添加了缺少的功能 Common Tools for Visual C++ 2015

修改后文件在C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC

【讨论】:

  • 你准确地预测了英文短语...添加了相应的截图
  • 安装“Common Tools for Visual C++ 2015”解决了这个问题(该选项默认不启用)——之后“VS2015 x64 Native Tools Command Prompt”可用
【解决方案3】:

以下是步骤

1) 从本站下方http://www.boost.org/下载库

2) 解压。[我在“F:\Internet-Downloads\boost_1_65_1”路径解压文件]

3) 打开“VS2015 的开发人员命令提示符”,如下图所示。

4) 转到您提取文件的目录。

5) 运行 bootstrap.bat 文件,如下图所示

6) 您将获得如下快照所示的安装信息

7) 启动VS2015,创建如下图所示的测试应用程序

8) 在你的项目中包含 boost 目录[Project Propertry->C/C++->General->Additional Include Directories]如下图所示

9) 运行应用程序,如果遇到“error C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe ......”错误,请在预处理器目录中添加“_SCL_SECURE_NO_WARNINGS”。[项目属性->C/C++->预处理器->处理器定义]

10 输出:

【讨论】:

    【解决方案4】:

    使用 VS 命令提示符中的https://github.com/Microsoft/vcpkg

    【讨论】:

      【解决方案5】:

      要查找和调用 VS2015 x64 Native Tools 命令提示符,只需在 Windows 开始->搜索程序和文件文本框中输入“native”即可。系统应该找到命令提示符

      【讨论】:

      • 您需要使用 Visual Studio 2017 的开发人员命令提示符!在开始 - 所有程序 - Visual Studio 2017 - Visual Studio Tools - Developer Command Prompt for VS 2017 中找到原始链接:stackoverflow.com/a/42922971/4565880
      猜你喜欢
      • 2015-10-18
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多