问题标签 [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.
c++ - 使用 Boost.Build 和 C++ 管理库依赖项
我想开发一个可以在许多不同平台上构建的项目。项目代码将使用 C++,管理库的最佳方式是什么?
我计划使用 bjam 作为构建系统,因为我也将依赖 Boost 及其单元测试框架。
这两个依赖项是 Boost 本身和 FLTK。
图书馆管理想到的可能性是:
- 在树中包含所有受支持平台的构建工件(二进制文件)和标头
- 在树中包含所有库依赖项的完整源代码,并以某种方式将它们编写为依赖项
- 1 和 2 的组合,就像 node.js 与 v8 一样
- 通知用户他们需要自己构建库,然后将它们放在 PATH 或某个特殊目录中,就像 libcurl 对其依赖项所做的那样
- 依赖 *nix 构建工具(即 libtool)mozilla 风格,然后告诉用户他们必须使用 MSYS 在 windows 上构建
这里最好的方法是什么?在接下来的六个月里,这个项目可能不会超过几千行,但我想在这里做出正确的选择,这样我以后就不必再回来换所有的东西了。
boost - Boost.Build 条件变量
如何在 Jamfile 中设置变量,其值取决于使用的功能?
也就是说,我正在使用特征库:
现在我想根据值设置一个全局变量?
如何做到这一点?
boost - Boost.Build 和可执行文件的功能
<link>static
当我在构建可执行文件时将功能传递给需求部分时,这到底意味着什么?
这是否意味着两者都/libs//my_library
必须<library>/boost//thread
使用静态链接构建?
如果我的目标/libs//my_library
具有<link>static
要求集(仅使用此功能构建),如果我省略<link>static
依赖于该库的所有目标的要求(就像上面的那个),是否会引发错误?
boost - Boost.Build 针对 boost 库的链接
我正在尝试链接来自 Jamfile 的 boost 库:
虽然我可以从控制台输出中看到库已编译,但链接器输出错误:
为什么会报错?我正在从 Jamfile 级别链接库,那么为什么在应该链接的时候没有链接库?据我了解,如果整个构建过程由 Jamfiles 控制,则该库应自动静态链接,并且不应添加特定于编译器的标志(因为它会使 Jamfiles 的可移植性降低)。请帮忙。
cross-compiling - Boost 构建方法:交叉编译环境中的本地构建工具
我已经将一个使用 boost-build 的项目从 Windows(使用 msvc)移植到 Linux(使用 gcc),现在正在将它进一步移植到交叉编译的 Linux(也使用 gcc)。我想长期支持所有 3 个平台(Windows、本机 Linux、交叉编译的 Linux)。
我已经加入了对交叉编译的基本支持,只需添加一个新的“使用 gcc ...”行。然而,这个项目使用了一些生成代码的构建工具,这些工具在每次构建时都会重新构建——在我目前对交叉编译的基本支持下,这些构建工具是交叉构建的,因此不会在构建机器上运行。简而言之,这些都需要在任何时候都是本地构建的,我不确定如何最好地指定它。这种情况有最佳实践吗?
我当然可以提供有关 Jamfile 组织等的更多详细信息,但我想我会从简短的说明开始;>
提前感谢您的帮助!
boost - Boost jam,使用依赖的绝对路径
我有一个果酱文件层次结构如下:
果酱:
p1 中的 Jamfile:
p2中的Jamfile:
所以 bar2 依赖于 bar 和 foo 使用相对路径。
是否可以在 Jamroot 中编写单个命令,以便我可以在 p2 的 Jamfile 中编写以下命令?
这会更方便,因为您不再需要考虑相对路径。我知道有use-project
命令,但是 1)我需要为每个子目录编写一个 use-project,2)我不知道如何使用 use-project 声明根文件夹...
谢谢!
c++ - 使用 boost build 构建 python 扩展
我正在尝试使用 boost.python 并从 c++ 构建一个 python 扩展。
我的 cpp 文件使用了一个名为 'BZ2_bzopen' 的函数,它位于标准路径 (/usr/lib/) 下的库 'libbz2' 中。但是,当我尝试按照说明使用 boost build 构建扩展时,我收到一条错误消息:
在我看来,这似乎是由于未链接到库而导致的错误,这与我在不使用“-lbz2”命令的情况下编译 cpp 文件几乎相同。
任何人都可以提供一些解决它的帮助,好吗?
c++ - 使用断言在发布模式下构建 Boost
根据问题中的所有关键字,这对于谷歌来说似乎是一件非常困难的事情。
使用 bjam / b2 构建 boost 时,如何在打开断言的情况下获得完全优化的发布版本?
假设这是可能的,我还想调整命名(使用--layout=versioned)以不同于正常的发布版本(即在库名称中添加-a 标志)。如果没有简单的方法,我可以重命名生成的文件。
编辑:应该提到这是Linux(Centos 6.2)
c++ - bjam,如何找到提升构建
我的机器上有两个boost 目录。一个在 /usr/ 中,一个在 /home/user/boost 中。我如何告诉 bjam 在 /home/user/boost 中只使用我的本地版本。我已经将 BOOST_ROOT 设置为指向该目录,但 bjam 仍然尝试使用 /usr/ 中的版本。
编辑:我发现,我可以在 Jamroot 旁边使用一个文件 boost-build.jam,只有一行告诉 bjam 在哪里可以找到 boost.build:
但这只是次优的,因为我必须为每个项目创建这个文件。有没有更简单的解决方案?
clang - 将 clangs scan-build 与 bjam 和 Boost.Build 一起使用
是否可以将 clangs 静态分析器 scan-build 与 bjam 和 Boost.Build 结合使用?我试着跑
这是行不通的。scan-build 报告报告目录不包含任何报告。