问题标签 [boost-build]

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 回答
274 浏览

boost - 提升 DYN_LNK 与 USE_DLL 与 USE_LIB

以下定义有什么区别:

(正则表达式是任意选择的)?

他们中的哪一个自动将项目与libboost*.lib, boost*.lib,boost*.dll文件链接?提到的文件有什么区别。

0 投票
1 回答
807 浏览

c++ - boost build: 每个模块禁用 -Weffc++

我将 boost build 用于一个分为不同子项目的大型项目。这里是 jamroot 文件:

一个子项目包括自动生成的代码,但代码风格不是很好。所以我想为这个子项目禁用 tie -Weffc++ 指令。每个子项目声明 -Weffc++ 是可能的,但我不太喜欢这个解决方案,因为我想在任何地方都有 -Weffc++ 但在我禁用它的(真的很少)子项目中。

boost build 中是否有可能为每个子项目禁用此指令?或者是否有一个 gcc 编译器选项我可以在子项目中添加另一个,这将禁用已经指定的 -Weffc++ ?

0 投票
1 回答
205 浏览

python - Boost.Build.V2 中 pythonPort 的当前状态

我目前使用 bjam boost.build 作为我的首选 C++ 构建工具。但是使用 bjam 编程语言有时对我来说非常困难且不直观。

从今以后,我迫不及待地等待 boost.build.V2 里程碑 15,“ PythonPort

但即使现在使用 Boost.build Milestone 12,当我查看 boost-build 目录时,我也会看到与大多数 jams 匹配的 python 文件。

从今以后,我想知道这些文件是做什么用的,是否有办法在我的 bjam 中从当前的 boost.build 版本中使用 python 扩展?

0 投票
6 回答
36220 浏览

c++ - 使用 MSVC 11 (VS 2012) 进行 Boost 编译

如何使用Visual Studio C++ 11构建Boost(我尝试了1.48.0版)?找不到工具集。我将工具集 vc11 添加到但收到一条消息:bootstrap.batvc11F:\Programming\boost_1_48_0\tools\build\v2\engine\build.bat

编辑: Ferruccio答案也适用于 VS 2012 Express 和 Boost 1.51.0。

0 投票
3 回答
3501 浏览

c++ - 使用 MinGW-w64 和 Boost.Build 的 C++ 构建环境

我目前正在将我的一个项目移植到 GCC,并且我正在使用 MinGW-w64 项目来完成此任务,因为我需要 x64 和 x86 支持。

不过,我在设置构建环境时遇到了问题。我的项目目前使用 Boost C++ 库,为了简化构建过程,我也在我的项目中使用了 Boost.Build(因为它使集成变得简单)。

在 MSVC 下这很好,因为我可以从命令行执行以下操作:

MinGW-w64 使这个“有问题”,因为 32 位和 64 位工具链位于不同的目录中。(分别为 C:\MinGW32 和 C:\MinGW64)。

是否可以设置 Boost.Build 以根据地址模型标志选择正确的工具链?如果没有,我的下一个最佳选择是什么?

编辑:

如果有帮助,我将使用 MinGW-w64 网站的“个人构建”文件夹中的 rubenvb 4.6.3-1 构建(我特别使用这些构建,因为我希望尝试让我的代码解析 - 但不编译- 在 Clang 下)。

编辑:

我刚刚想到的一个解决方案是在编译之前“手动”设置 PATH 以指向正确的工具链,但是这给我的构建过程增加了一层额外的复杂性,我想避免这种复杂性。理想情况下,我希望它像 MSVC 一样简单,尽管我知道这可能是不可能的。在最坏的情况下,我假设我刚才的建议会起作用,我只需要在调用 Boost.Build 之前添加脚本以正确设置 PATH。这将意味着硬编码一条路径,我不想这样做......

0 投票
1 回答
697 浏览

c++ - 如何在多个类中使用库而不会出现“多个定义”错误

我正在开始一个新的 c++ 项目,我想使用 Boost.Build / bjam。

我收到“多重定义”错误,因为我想可能是 jam 文件没有正确写入,或者我没有正确包含标题,或者可能是库写得不好,我没有调查过。

main.cpp 使用 libA。rest.cpp 使用 libA。

libA 是一个头文件库。因此,我需要在编译器的 main.cpp 和 rest.cpp 中包含 libA 的标头,抱怨命名空间等...

我在 debian 上使用 gcc。

这是我的果酱文件:

Jamroot.jam

Jamfile.jam

我得到的错误是重复的:

0 投票
1 回答
2428 浏览

boost-build - Boost Build,找不到文件或目标 x

我有一个看起来有点像这样的 Jamroot 文件;

总是给出恼人的错误

运行;

一点帮助都没有。

如果我将目录更改为文件夹并键入 bjam,则项目的该部分将完美构建。

作为一种解决方法,我有一个在所有文件夹中执行此操作的脚本,但我很想知道为什么“正确”的方式不起作用。

我正在使用以下版本的 bjam

非常感谢

0 投票
3 回答
1011 浏览

bjam - 在 Boost.Build 中禁用单元测试编译

Boost.Build文档在测试方面非常简洁。

我项目中的所有测试都是使用unit-test规则定义的。

文档中提到的唯一属性是testing.launcher,但只有在设置为 时才能禁用测试的执行testing.launcher=true

如何完全禁用unit-test规则编译?我想暂时这样做,例如,通过从命令行设置一个属性。我找不到如何执行此操作的任何信息或其他testing.*属性的任何参考文档。

0 投票
1 回答
1154 浏览

c++ - 如何独立编译 Boost.Log

在对 Stack Overflow 进行了一些研究之后,我决定尝试使用 Andrey Semashev 的Boost.Log库。

不幸的是,要构建 Boost.Log 库,我必须将它放在 Boost 源代码树中并编译,因为它是 Boost 的一部分。这对我来说是一个障碍,因为我已经有一些复杂的建筑配置。我想独立构建 Boost.Log。

在 Boost.Log 论坛上找到了有趣的帖子,但这种方法对我不起作用。

0 投票
5 回答
3418 浏览

c++ - C++ 测试编译错误

我是一名学生,我正在尝试编写和运行一些测试代码以在我上交之前检查它的分配。我现在要做的是测试我的代码是否正确地防止了值语义。在我的作业中,我为每个类声明了自己的私有复制构造函数和赋值运算符,它们没有定义,所以什么也不做。当他们在我的测试程序中被调用时,我得到了我预期的编译错误。像这样的东西:

错误:'myClass::myClass(const &myClass)' 是私有的'

错误:'myClass& myClass::operator=(const myClass&)' 是私有的

有没有办法使用 try/catch 以便我的测试代码能够编译和运行,但告诉我这些错误确实发生了?我试过了:

但编译器仍然给我上述错误。这些不是“例外”吗?他们不会触发投掷吗?

如果我正确理解了 try/catch,它会处理运行时错误,而不是我上面遇到的那种错误,对吗?

在做了更多的研究之后,似乎没有(简单的)方法可以在 C++ 中本地测试某些编译错误(这对于大多数语言来说可能是正确的,现在我考虑了一下)。我读过一篇文章建议用脚本语言编写一些测试代码,尝试编译 C++ 代码片段并检查是否有任何错误,以及另一篇建议使用 Boost.Build 的文章。

做我想做的事情的最简单/最好的方法是什么?

我查看了 Boost.Build 的文档,这有点超出我的想象。如果我使用它,我将如何测试一个文件,比如“test.cpp”编译,并可能处理“test.cpp”发生的特定编译错误?

谢谢你的帮助!

PS 这是我的第一篇文章,希望我已经做了“足够”的研究,并正确地完成了其他所有工作。对不起,如果我没有。