如何使用 Visual Studio 2015(企业版)构建 boost 版本 1.58.0

2023-12-29

我喜欢使用(新的)Visual Studio 2015(企业版)构建 boost 1.58.0。过去我是按以下方式进行的:

  1. 从以下位置下载 boost 1.58.0www.boost.org http://www.boost.org
  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. Execute .\bootstrap.bat
  6. Execute .\b2 -j8 --toolset=msvc-14.0 address-model=64 --build-type=complete stage
  7. b2 -j8 --toolset=msvc-12.0 地址模型=64 --build-type=完整阶段 --with-python

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

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

如何使用VS2015编译boost源码?


很遗憾增强文档 http://www.boost.org/doc/libs/1_61_0/more/getting_started/windows.html非常冗长,因为它试图照顾所有操作系统和环境。此外,它还跳过了一些节省时间的细节。以下是专门针对带有 Boost 1.61 的 VS2015 的快速步骤。

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

使用仅 Boost 标头库

  1. 下载提升存档 http://www.boost.org/users/history/version_1_61_0.html7z 格式并使用 7Zip 提取。该 zip 文件比 7z 文件大得多,通过 Windows 资源管理器解压可能需要 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。

现在您应该能够通过使用以下语句来使用大多数 Boost 库#include <boost/thread/mutex.hpp>.

使用Boost头文件+CPP库

这些例子是Boost.Chrono、Boost.Filesystem、Boost.GraphParallel、Boost.IOStreams、Boost.Locale、Boost.Regex、Boost.Thread、Boost.System等等。除非您正在使用这些库,否则不需要执行以下步骤。

  1. 首先确保您没有安装 Windows 驱动程序工具包。如果有,请暂时卸载它,因为它很可能弄乱了包含路径,从而导致 Boost 的构建脚本失败。
  2. 以管理员身份调用 VS2015 x64 本机工具命令提示符。
  3. CD 到 C:\Program Files\boost\boost_1_61_0,然后运行 ​​bootstrap.bat。
  4. Run .\b2
  5. 运行 .\b2 变量 = 调试,发布链接 = 静态运行时链接 = 静态地址模型 = 64
  6. 剪切文件夹 C:\Program Files\boost\boost_1_61_0\stage\lib 并将其复制到 C:\Program Files\boost\boost_1_61_0\lib。
  7. 对于要使用这些库的 VC++ Console 项目,右键单击“属性”>“链接器”>“常规”>“其他库目录”并添加路径 C:\Program Files\boost\boost_1_61_0\lib。对于 VC++ 库项目,您可以在属性 > Librarian 中找到相同的设置。

现在一切都准备好了!

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Visual Studio 2015(企业版)构建 boost 版本 1.58.0 的相关文章

随机推荐

  • 嵌套在 firebase 集合模型中的集合没有添加功能

    在我的应用程序中 我尝试使用 Firebase 来存储基于骨干框架的实时数据 问题是这样的 我有一个子级别的模型和集合 它们都是通用骨干模型和集合 var Todo Backbone Model extend defaults title
  • 使用 autofac 解析方法内部类的实例

    使用下面的 PipelineX 类 是否有任何方法可以解析应用于管道的过滤器 而无需注入 autofac 容器并调用 container Resolve public class PipelineX
  • AWS EventBridge API 目标无法连接到 EC2 私有 IP

    我的目标是通过 HTTPS 将消息从 EventBridge 转发到运行 httpd 服务器的 EC2 实例 该实例只有其私有IP 事实证明 EventBridge 的 API 目标及其目标和连接与外部 IP 配合得很好 但私有 IP 没有
  • 未找到工作职能。尝试公开您的工作类别和方法

    首先 我查看了其他具有相同错误消息的 SO 帖子 但似乎没有一个帖子能解决我的问题 我尝试了很多排列和选择 我的函数构建良好 但无法在 CLI 中运行 我收到以下神秘错误 MSFT 文档似乎也没有给出答案 未找到工作职能 尝试公开您的工作类
  • WPF 文本框边框何时被选中?

    我想让 WPF 文本框具有深蓝色边框且厚度等于 1 即使选择了文本框 我也想让 WPF 具有此边框 深蓝色 厚度设置为 1 我尝试通过以下代码完成此任务 然而 它根本不起作用 有什么想法或提示吗 任何帮助将不胜感激
  • Django-注册设置无需密码

    我正在尝试创建一个网站 人们只在其中输入电子邮件地址 然后使用 cookie 等登录 稍后 我会要求他们提供密码和姓名 但不会使用用户名 我正在尝试使用 django registraition 来执行此操作 但出现错误并且遇到一些问题 首
  • Ruby on Rails CSV 用“”代替实际引号

    我正在尝试生成 CSV 文件 除了空白字段之外一切都很好 我不太确定是否有 quot quot 而不是实际的报价 我提供了用于生成文件和一些输出的代码
  • 处理用户输入中从右到左/从左到右覆盖字符

    我需要将用户输入嵌入到字符串中 例如 发送了一条消息 如果用户输入包含方向性覆盖字符之一 U 202D 或 U 202E 就会出现问题 如果 包含 RLO 字符 则显示的字符串将变为 发送了消息 我的问题是如何最好地处理这个问题 RLO 和
  • EF 迁移 - 数据库中已有一个名为 '' 的对象

    我在向数据库添加新表时遇到问题 这些是我在尝试添加新迁移时输入的命令 Add Migration AdminSett 脚手架迁移 AdminSett 设计者代码 迁移文件包含当前 Code First 模型的快照 此快照用于计算模型的更改
  • 指令内部模板中的 ng-click 未提供该功能

    ng click不提供警报 单击指令的内部模板时 不会显示警报框 小提琴链接在这里 http jsfiddle net NNDHX http jsfiddle net NNDhX 你的指令有它自己的隔离范围 所以函数 hi 应该在指令的范围
  • 为 Android 流媒体创建视频

    这是我为创建在 Android 上播放的视频所做的搜索的答案 虽然android支持mp4流媒体但并不容易 我根据我的经验推断出的简单步骤是 1 首先使用超级编码器对视频进行编码 参数是 A 顶级参数 a mp4作为容器 b mpeg 4
  • Java正则表达式字符类中的非法转义字符

    我试图确定传递到我的 Expressions 类中的表达式是否有运算符 任何一个 分别用于加 减 乘 除和指数 这段代码有什么问题 private static boolean hasOperator String expression r
  • 为什么编译器资源管理器上的 Visual Studio 忽略异常模型设置?

    当我尝试使用 EHs标记在编译器资源管理器测试用例 https godbolt org z Md2g7J 启用 异常通过extern C 函数 VC 19 22 似乎忽略了它 因为它仍然踢出 C5039 并且实际上没有更改代码 我缺少什么
  • 如何轻松打印ascii-art文本? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个转储大量输出的程序 并且我希望其中一些输出能够真正脱颖而出 一种方法可能是使用 ascii art 渲染重要文本 like 这
  • VS 2017 中缺少 ASP.NET Core 2 模板

    I m using VS 2017 Community Edition I ve installed NET Core 2 SDK from here 当我跑步时dotnet version我收到如下回复 但我看不到ASP NET Core
  • 为什么每次创建新视图模型时不调用视图构造函数?

    我正在将 WPF 与模型 视图 视图模型模式一起使用 我有一个 ResultsView 和 ResultsViewModel 它们的连接方式如下
  • Angular 5:装饰器中不支持函数调用

    我正在从 Angular 应用程序构建 PWA 运行时出现以下错误ng build prod ERROR in app app module ts 108 64 Error during template compile of AppMod
  • 不允许远程表值函数调用

    我怎样才能做到这一点 我正在从远程链接服务器运行表值函数 我尝试在这 4 部分命名中不添加锁定 但仍然遇到相同的错误 我使用 mssql 2008 select from 110 10 10 100 testdbname dbo ufn g
  • 如何将 Micrometer 与 @WebMvcTest 连接起来

    我正在尝试测试 Spring Boot 2 3 Controller通过 Actuator Prometheus 执行指标 WebMvcTest 不幸的是 这在 NPE 中失败了 可能是因为测试中不存在 Micrometer Prometh
  • 如何使用 Visual Studio 2015(企业版)构建 boost 版本 1.58.0

    我喜欢使用 新的 Visual Studio 2015 企业版 构建 boost 1 58 0 过去我是按以下方式进行的 从以下位置下载 boost 1 58 0www boost org http www boost org 提取文件 例