问题标签 [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 投票
2 回答
397 浏览

visual-c++ - bjam 的 cxxflags 选项是否删除尾随减号?

我正在尝试将 Visual-C++ 编译器选项/Zc:wchar_t-(注意尾随减号将其关闭)传递给 bjam,boost 的构建工具,如下所示:

但是,当我检查包含生成的编译器选项 (at ...\boost_1_44_0\bin.v2\libs\program_options\build\msvc-8.0\debug\debug-store-database\threading-multi\options_description.obj.rsp) 的 *.rsp 文件时,它将始终包含/Zc:wchar_tas 选项,无论我是否指定-

有什么东西cxxflags可以从传递的选项中删除尾随的减号吗?

请注意,该选项/Zc:已设置在 中tools\build\v2\tools\msvc.jam,导致当我使用 cxxflags 指定该选项时,该选项在 RSP 文件中提供了两次——仍然是带有 cxxflags 的选项总是删除其尾随减号,而——如果我编辑 msvc.jam—— msvc.jam 中的一个被逐字记录,减号被保留。

0 投票
1 回答
657 浏览

c++ - 如何将 boost.build 项目链接到特定的静态库

我将 boost.build 用于我的项目。当然,我使用 boost 本身。此外,出于测试目的,我在我的项目中使用了 google-test 库。我必须将我的项目与 google-test 的静态库链接起来。我找到了为 MinGW 执行此操作的解决方法(对于 linux 的 gcc 也可以)

它看起来有点难看,但它确实有效。msvc 的规则看起来要丑得多

是否有更自然的方式将目标与 boost.build 项目文件中的外部静态库链接。


PS 当然,使用 google-test 和 boost mix 的味道并不好,但无论如何,有很多外部库覆盖了 boost 没有涵盖的领域。

TIA

0 投票
1 回答
643 浏览

c++ - Jamfile 的可移植编译参数

这是我目前用来构建测试的 Jamfile。

有没有办法在不特定于 gcc 的情况下切换到 c++11 标准?是否有任何可移植的可能性给 bjam 链接标志(或者这是一种可移植的方式?)?我知道我可以编写条件参数,但这意味着我必须为我想支持的任何编译器编写参数。因此,我希望 bjam 对此有解决方案。

另外我想知道在调用“bjam clean”之后不删除“bin”目录是否有意义。

0 投票
1 回答
1080 浏览

c++ - 当我使用 bcp 导出 boost 线程时如何克服构建错误?

我正在使用 boost bcp工具从 boost 中导出线程库。导出库的布局是

现在,当我在构建库中运行bjam时,我得到了:

我导出了系统库,当我在构建文件夹中运行 *bjam 时,它编译成功。我不知道为什么线程库无法编译?有人知道线程库出了什么问题吗?

0 投票
1 回答
477 浏览

c++ - 如何使用特定的 VC++ 运行时编译 boost?

我正在尝试为分发获得一致的 VC++ 运行时,但我找不到任何迫使 boost/bjam 合作的东西。

我已经使用此链接中的方法成功编译了 libcurl 和 UnitTest++。

避免 VC2005 SP1 安全更新 KB971090 出现问题

一般策略是将此标头包含在所有 cpp 文件中。

b2具有设置 cxxflags 的选项,尽管它们似乎不尊重我的/FI编译选项来使用标头并强制正确的运行时。我假设他们正在使用其他东西。我想 boost 不使用 msvc 标志?

我想8.0.50727.762专门编译 boost 。

0 投票
1 回答
970 浏览

c++ - 如何在 boost.build Jamroot 中指定链接器依赖项

当我尝试用它编译一个 exec 时,b2 toolset=clang它使用如下链接命令:

并且在 boost 中出现一长串未定义的引用而失败,而以下重新排序的版本可以很好地链接:

我相信我指定 on 的链接依赖的libCDef方式/boost/date_time//boost_date_time可能不足以在链接期间获得正确的顺序。

CDef/果酱根:

我需要指定 CDef 取决于 boost_date_time ,因此链接器应该这样订购它。

0 投票
1 回答
3067 浏览

c++ - 减少 boost build 中的内存使用

我正在尝试使用 G++ 4.6 在内存资源受限的 Linux 系统上构建 C++ 库。该库大量使用 Boost。

我在这里和其他网站上看到了有关编译速度的各种线程,但我对降低 G++ 对内存资源要求的提示和技巧感兴趣,即使这意味着失去速度。

编辑:我尝试过为 Boost 使用预编译的头文件,它只提高了构建速度,但仍然需要大致相同的内存量。

0 投票
1 回答
196 浏览

filenames - boost build:目标文件名中的点

是否有可能有一个目标生成文件名中带有点的文件?我不需要它们在目标名称中,只是在它产生的文件名中,例如

libAuthorization.Plugin.so如果它产生并且我可以从其他目标使用它,那将非常好:

由于使用点是公司惯例,我不能只使用下划线。

一种选择是更改目标名称的某些要求<name>

我也不能使用简单的重命名后构建步骤,因为应用程序必须链接到libAuthorization.Plugin.so,而不是libAuthorization_Plugin.so. 但如果有其他可能,我也可以使用它。

构建过程本身使用 gcc 在 Linux 下运行。

0 投票
1 回答
240 浏览

c++ - boost-build 无法正确定位 .tli 文件并中止

我正在尝试使用 boost-build 构建一个使用 excel 自动化对象的 dll。

它只有一个 .cpp 文件,其中包括 mso.tlh、vbe6ext.tlh 和 excel.tlh 文件(也存在相应的 .tli 文件)。所有文件都与 jamfile 位于一个目录中。

在 Jamfile 中指定了“<include>./”。但是,当我尝试构建它时会中断,因为它正在 Jamroot 文件所在的目录中寻找 excel.tli 文件,而不是 jamfile 和 excel.tli 文件所在的目录。

如果我将 excel.tli 放在 Jamroot 所在的位置,则构建成功。

我应该怎么做才能让它在 Jamfile 所在的目录中查找 excel.tli 文件?

0 投票
2 回答
2355 浏览

c++ - 无法添加定义以提升构建

我正在尝试使用 boost buildsystem 构建 boost 序列化/文件系统/系统的调试版本。这是我使用的:

但是,当我在调试 Visual Studio 项目中包含该库时,我仍然会收到如下错误:

这让我相信我在提升构建中的“定义”没有任何效果。什么是正确的语法?我找不到任何示例,文档也没有就此事发表任何其他意见。

编辑:我想强制我想在我的 boost 构建中定义 _HAS_ITERATOR_DEBUGGING=0