问题标签 [bjam]
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.
bjam - 在 Boost.Build 中禁用单元测试编译
Boost.Build文档在测试方面非常简洁。
我项目中的所有测试都是使用unit-test
规则定义的。
文档中提到的唯一属性是testing.launcher
,但只有在设置为 时才能禁用测试的执行testing.launcher=true
。
如何完全禁用unit-test
规则编译?我想暂时这样做,例如,通过从命令行设置一个属性。我找不到如何执行此操作的任何信息或其他testing.*
属性的任何参考文档。
c++ - 如何使用 -g 调试标志编译 boost?
我想重新编译我们的 boost 库,但启用了 -g 调试标志。我一直在阅读并看到我们使用jam
. 虽然我make
很清楚,jam
但一直躲避着我,我的挫败感越来越大。
c++ - 如何构建boost静态库?
这有效,但不构建boost库的静态版本(也许我错了?)
尝试发出以下命令:
但它不起作用。
c++ - 构建 Boost 1.49.0 时出现致命错误 C1027
我正在尝试使用 MSVC2010 构建 Boost 1.49.0,但失败并出现以下错误:
这是该错误的第一个实例,在构建中止之前,我的日志文件有 995 个相同错误的实例。
project-config.jam 的内容是:
我使用的构建命令是:
知道是什么原因造成的吗?
cross-platform - 从 Jam 迁移到 CMake
我了解 Jam 构建现有项目,CMake 生成要构建的项目。但是,鉴于我宁愿生成可以在各种 IDE 中使用的项目,而不是尝试将 Jam 集成到这些 IDE 中,有没有人有任何经验/成功将 Jamfile 转换为 CMakeLists.txt 文件?
c++ - Boost.Build/bjam 和 Qt
我正在尝试设置 Boost.Build .jamroot 文件来编译 Qt 4.8 项目,但它似乎忽略了应该 moc:ed 的 .ui 文件和 .cpp 文件。我尝试在 qt4.jam 中四处寻找,添加了更多 ECHO:s,但我不知道该去哪里找。
例如,似乎没有调用 uic-generator 的 run 方法(init 确实),但我认为应该如此。
我的 jamroot 文件如下所示:
我得到的唯一输出是:
如果我运行 bjam --debug-configuration,qt4.jam 会为我的 Qt 安装打印出所有正确的路径。
这是怎么回事?也许它与 Qt 4.8 不兼容?还是我只是用错了?尽管代码几乎是从examples/qt下的文件中逐字提取的。
我该如何使用它?谢谢你的帮助。
编辑:使用 gcc 4.7 和来自http://nuwen.net/mingw.html的 MinGW 发行版 9.0 ,以及 Boost 1.49.0 附带的 Boost.Build。
bjam - 让 bjam 在编译前运行一个脚本
是否可以让 bjam 在构建之前运行脚本?如果是这样,怎么做?我想在编译之前对代码应用补丁,但不想改变开发人员的正常工作流程。谢谢!
visual-studio - 如何让 bjam 在其他目录中找到我的 .h 文件
我在 Visual Studio 2008 中维护此解决方案,但我使用 bjam 构建我的可交付成果。该解决方案包括 3 个项目。jamfiles 设置为构建解决方案的 2 个版本(例如 A 和 B),然后为每个版本构建 32 位和 64 位可执行文件。
我的问题是 bjam 没有为解决方案中的一个项目找到 .h 文件,从而产生以下错误。这些 .h 文件在物理上位于“包含”文件夹中上下 2 个目录。
如果我将 .h 文件复制到项目的 jamfile 所在的位置,错误就会消失,并且解决方案会完美构建。但是,我们必须将 .h 文件保存在“include”文件夹中。
我的问题是,如何指示 bjam 在“include”文件夹中查找 .h 文件?下面是有问题的项目的 jamfile,以及我的 site-config.jam 文件
任何提示将不胜感激。谢谢。
果酱文件:
c++ - Bjam 用于 gcov 覆盖率分析?
我希望为主要用 C++ 编写的项目集成一个重要的跨平台构建系统。到目前为止,我已经评估了 Cmake 和 Scons,虽然它们都代表了对 (GNU) make 的改进,但在我尝试使用这些工具的上下文中,这两种方法似乎既不优雅也不透明。这让我想到了 Boost Build (Bjam),我很受鼓舞的是,鉴于我的项目依赖于 Boost,bjam 应该已经可用于任何可行的目标平台。
我在尝试为库的单元测试巧妙地集成代码覆盖率时遇到了困难......以最终集成到构建服务器(如 Jenkins)中。虽然我愿意以 Bjam 最佳/标准实践为指导,但我认为我需要三个不同的“变体”:
- release - 仅构建优化的静态库
- debug - 构建非优化的静态库和单元测试
- 覆盖 - 构建支持覆盖的库并与未启用覆盖的单元测试链接。
本质上,除了标准的调试和发布版本之外,我还想要一个专用的调试版本,它还可以收集覆盖率数据。
我需要使用(至少)g++ 和 msvc 构建......并且仅使用 g++ 使用 gcov 开关。这意味着我的库目标需要与单元测试可执行目标不同的“编译器标志”......并且仅适用于我的一个编译器套件......并且仅适用于一个变体。
我不清楚如何最好地使用 Bjam 来实现这一点——不过,我怀疑它应该是一个相当常见的用例。Bjam 是否明确支持 gcov 覆盖分析(可能使用 lcov 呈现结果)?如果没有,任何人都可以推荐一种支持上述(简化)方案的策略吗?
boost - 多个 Boost.Build 项目
我有两个项目使用 Boost.Build 引擎,结构如下:
如何从项目 2 触发项目 1 的构建过程,以及链接到项目 1 中生成的动态库?