问题标签 [b2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
437 浏览

boost - 支持 ExternalProject_Add 和 Boost 的配置

我目前正在ExternalProject_Add使用以下命令构建 Boost:

问题是,无论我实际想要构建哪种配置,这将始终构建用于提升的发布和调试变体/配置。在这种情况下,如何将当前配置“传递”给ExternalProject_Add命令?

似乎只适用于“内部”构建工具,即调用的工具ExternalProject_Add也是 CMake。但是,我不知道如何将该信息传递给 Boost 的 b2。

上面的示例适用于 Windows / VisualStudio2013,因此是一个多配置 CMake 目标,但理想情况下,我也会有一些适用于单一配置目标的东西。

0 投票
1 回答
167 浏览

bjam - bjam:对多个规则使用相同的操作

我定义了一个生成覆盖文件的操作,它需要一些选项。

我需要一个规则来设置$(OPTIONS)变量:

完成后,我可以使用规则生成覆盖文件:

我想要的是第二条规则($(OPTIONS)以不同的方式计算变量),它使用相同的动作。在不复制动作本身的情况下这可能吗?换句话说,是否可以将两个规则与同一个动作相关联?

我想要的是这样的:

显然,无需重复操作命令本身(DRY 和所有这些)。

0 投票
1 回答
146 浏览

target - Boost-build - 对子项目目标的依赖

我有一个基于 jamfile 的项目,其中一个构建步骤编译了一个自定义工具(称为“codegen”),我想在以后的构建步骤中使用它。codegen 工具相对于根目录构建在 projects/codegen/Jamfile.jam 中,可执行目标最终用以下行声明:

在 Jamroot.jam 中,我有以下内容:

当我运行命令“b2 codegen-output”时,出现错误:

但是运行命令“b2 projects/codegen//codegen-tool”是成功的。为什么我无法从 Jamroot.jam 引用 codegen-tool 目标?

0 投票
2 回答
4902 浏览

c++ - 使用(自定义)GCC 4.x 或 5.x 时,Boost 构建未能通过 C++11 功能检查

我需要在 Fedora 24 机器上构建 Boost 1.62 和 1.63,但使用 GCC 4.9.3 或 GCC 5.4.0(取决于版本 CUDA,这就是我需要旧编译器的原因)。但是,如果我按照此答案中的描述设置自定义 GCC 版本并运行

令我懊恼的是,我现在看到:

也就是说,很多 C++11 特性据说是缺失的,但它们不应该缺失。使用发行版的 GCC 版本 (6.2.1) 构建它时不会发生这种情况。

为什么会发生这种情况,我应该怎么做才能让 Boost 版本识别我的 GCC 5.4.0(或 4.9.3)的功能?

0 投票
0 回答
1023 浏览

c++ - boost b2 build 64 位导致参数错误缺少参数

我正在尝试使用 boost 的 b2 构建 64 位库。我按照所有步骤完成了 T 恤,但我不断收到关于缺少参数设置脚本的恼人错误。

这是我放入 HOME 目录的 user-config.jam 文件:

然后我在我的根 boost 目录中运行这个命令:

然后我得到这个错误:

有趣的是,如果我像这样去掉 msvc 配置行中的 x86_amd64 目录:

它开始建造。

如何正确地让 boost 构建 64 位版本的库?

0 投票
0 回答
283 浏览

c++ - 如何为 Nintendo DS Lite 编译 boost 库(arm none eabi g++ 编译器)?

我想为 NDS(在 Windows 机器上)编译 c++ boost 库。我遵循了本教程:https ://patater.com/boost-on-the-nintendo-ds/

这是我的项目-config.jam:

但是当我运行 bjam 时,它会永远挂起(实际上不是永远,但它已经运行了两个多小时)。此外,没有任何内容输出到我的输出目录。如何为 NDS 编译 boost?

编辑:为您提供更多详细信息,这就是我所做的:

  1. 我下载了 Boost
  2. 我跑了bootstrap.bat
  3. 我添加C:\devkitPro\devkitARM\arm-none-eabi\binC:\devkitPro\devkitARM\binPATH
  4. 我改为using msvc ;使用gcc : 6.3.0 : arm-none-eabi-g++.exe ;
  5. 我在 boost 目录中运行了这个命令:b2 --toolset=gcc-6.3.0 --prefix=C:\devkitPro\boost threading=single link=static install
0 投票
1 回答
534 浏览

boost - 如何在我的 boost jamfile 中创建条件 cxxflags 功能?

我正在为一个小项目使用 Boost.Build,并希望启用 C++17 支持。根据这个答案,我可以通过以下方式传递编译器标志-std=c++17,并将该标志传播到所有可执行文件和库:

toolset=gcc当我与 gcc7 一起使用时,这很好用。但是,在其他编译器上,C++17 模式以另一种方式启用。例如,Clang 3.9 期望-std=c++1z而不是-std=c++17. 在 MSVC 中,C++ 版本取决于 MSVC 版本。

有没有办法以(或多或少)独立于工具集的方式在 jamfile 中设置 C++ 版本(C++11/C++14/C++17)?

0 投票
0 回答
494 浏览

c++ - 如何在 Linux 上使用调试 libstdc++ 构建提升(GLIBCXX_DEBUG 标志)

我尝试使用以下命令构建 boost:

我不知道如何彻底检查 boost 是否使用正确的标志编译。显然,它不是,因为我从构建依赖于 boost 的库中得到这样的错误:

但是herehere提到可以使用调试libstdc++编译boost。但是怎么做?

0 投票
0 回答
413 浏览

boost - 如何使 b2 构建器默认为 -jN?

我想在默认情况下并行进行 boost 构建,例如,./b2 -j4我不想只调用./b2并让它使用-j4,或者-jN其他一些相关的 N 本身。

我可以这样做吗?我在想也许我可以以tools/build/src/user-config.jam某种方式加入,但我对它的工作原理还不够精通。

如果我不必手动输入一个值,而是nproc在构建之前动态地通过类似 , 来确定它,则可以加分。

0 投票
1 回答
430 浏览

php - 用 Fread 耗尽内存

我正在使用 Backblaze B2 来存储文件,并正在使用他们的文档代码通过他们的 API 上传。然而,他们的代码使用 fread 来读取文件,这会导致大于 100MB 的文件出现问题,因为它会尝试将整个文件加载到内存中。有没有更好的方法不尝试将整个文件加载到 RAM 中?

我试过使用:

但是我得到一个错误响应:读取上传数据时出错:SocketTimeoutException(读取超时)

编辑:使用 CURL 流式传输文件名似乎也不起作用。