问题标签 [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.
c++ - 为 MSVC 预构建的 Boost 1.37
我找不到用于 Boost 1.37.0 的一组预构建的 MSVC++ 库,只有源代码。我不明白他们奇怪的构建系统是如何工作的……有没有什么地方可以找到 Visual Studio 项目的下载或其他东西?
c++ - 在编译 boost 时定义 BOOST_DISABLE_ABI_HEADERS 会带来什么危害?
在编译 boost 时定义 BOOST_DISABLE_ABI_HEADERS 会带来什么危害?
从升压文件:boost_1_37_0\boost\config\user.hpp
为什么 boost 觉得需要控制结构的打包和对齐?
它可能与提升序列化并确保它在所有平台上都相同吗?如果我只运行 Windows,我可以安全地定义它吗?
c++ - 在 windows 中构建 boost 的子集
我正在尝试设置 boost 的一个子集并使用 bjam 正确编译它,但是我没有得到我正在寻找的结果。我正在使用 boost 1.37.0 在 Windows 上工作。
假设我想要构建/安装库 smart_ptr 和文件系统。我故意选择了一个只有头文件的库和一个需要编译库的库。我希望它们被构建到一个类似于我使用 bjam 构建完整的 boost 安装的目录结构中(即没有指定任何 --with-libraryX)但当然没有我不感兴趣的所有库.
我的第一种方法是在 bjam 中使用 --with-filesystem --with-smart_ptr,但它似乎无法识别 smart_ptr(我尝试了 smartptr 和 smart-ptr 但没有成功)。我想这是因为它是一个只有标题的库。
当我删除它并且只有 --with-filesystem 时,它似乎将所有库头文件复制到安装路径,并且只为文件系统构建库。库构建行为是我所希望的,但是我在我的 boost 目录中安装了大量我不感兴趣的库的头文件。
我的第二种方法是使用 bcp 复制相关项目。从某种意义上说,这确实奏效了,因为我只得到了我关心的项目(及其依赖项)。但是,他们没有提供任何生成文件来构建被复制的库。这意味着我需要为所有不仅仅是标题的库设置项目文件并手动构建它们。
所以我的问题基本上是,有没有一种选择性地构建 boost 的方法,它只复制我感兴趣的库的标头,并且只为我感兴趣的非标头库构建库文件(以及它们是 boost 库取决于课程)?
可能有大量基于手动/脚本的解决方案,但如果我可以只使用 bjam 运行某些东西,对我来说会更有用,因为添加新库或升级到新的 boost 版本会非常简单。
编辑:为第一种方法添加了完整的命令行:
将 scoped_ptr 更改为 smart_ptr
build - 如何在 bjam 中使用带有空格的文件名?
我需要在 Jamfile 中描述一个外部库。库的位置保存在环境变量中。
这是来自 Jamfile 的片段:
--剪辑--
- 旋转 -
bjam 抱怨说找不到“C:\Program”。可以做些什么来让 Jamfile 中的 lib 规则调用接受带有嵌入空间的路径?
c++ - 为静态链接构建 Boost (MinGW)
我正在使用 bjam 为 MinGW 构建 Boost(我正在使用系统和文件系统):
它构建得很好,但我希望能够静态链接到它(我必须为最终产品提供一个文件)所以我尝试了:
但我得到相同的输出。有任何想法吗?
连续编辑第二个问题我在发布后不久就回答了:p 我想我会把这个留给其他人。
肯定会建立动态和静态的。
migration - 什么是 Boost Jam,Jam 是否值得迁移?
什么是 Boost Jam,Jam 是否值得迁移?
我知道 jam 是 perforce 构建的构建系统,但是我不确定 boost jam 和常规 jam 有何不同。
我也希望 SO 社区中有人与它合作过,也许可以突出一些差异和/或好处。
makefile - Boost::Jam (bjam) 有“提问模式”吗?
我将 Code::Blocks 与 Boost::Jam 一起使用。最近对 C::B 的更新添加了一些新的“自定义生成文件”命令,其中之一是“询问是否需要重建”。根据此消息,它意味着以make
“问题模式”调用:
-q, --question
''问题模式''。不要运行任何命令,或打印任何东西;如果指定的目标已经是最新的,则只返回一个退出状态为零,否则返回非零。
不幸的是,Boost::Jam 文档没有在bjam
. 我已经通过使用这个命令来解决它......
...这会强制bjam
返回 1 的错误级别(因为它无法识别 option -e
)并使 C::B 始终运行构建命令,但我更愿意按预期使用它。
我的问题:确实bjam
有这样的“问题模式”,但我还没有找到它,或者 Jamfile 中有什么方法可以让它以这种方式工作?该-n
选项不起作用,因为它总是返回零,C::B 将其解释为“所有文件都是最新的”。
boost-build - 使用 bjam 构建基本的 Boost 应用程序
我可以在 Boost.Build 上找到大量通用文档,但令人惊讶的是,没有关于如何使用它来构建简单的 Boost 应用程序。
我用 bjam 为 mingw 编译了 Boost,得到了所有的库并包含在 C:\Boost 中。现在,使用所有这些的基本 Jamroot 文件会是什么样子?
这些库都有复杂的名称,例如“libboost_filesystem-mgw34-mt-s.lib”,我确信某处有某种神奇的开关可以说“链接到 libboost_filesystem”!
comparison - Boost bjam 与 GNU make
我是 Boost C++ 库的新手。我想知道 Boost bjam 是否比 GNU make 有任何优势?如果我使用 make 来使用 Boost.Python 库构建 C++ 代码,有什么缺点?
macos - 更改 bjam 使用的 GCC 版本
我正在尝试用 bjam 构建一个库(luabind)。我遇到了一个错误,问题似乎是我需要使用 gcc 4.2 进行编译,但是这台计算机(Mac OSX)上的默认值是 4.0。我不希望更改系统目录中的链接,有没有办法指定 bjam 使用 gcc4.2 而不仅仅是 gcc?