什么是 Boost Jam? Jam 值得迁移到吗?

我知道 jam 是由 perforce 构建的构建系统,但是我不确定 boost jam 和常规 jam 有什么不同。

我也希望 SO 社区中有人使用过它,也许可以强调一些差异和/或好处。

有帮助吗?

解决方案

对于我而言,它只是建立Boost库为你的东西,我不知道,你可以做任何事情与它,所以我不明白,你可以通过迁移到它的意思。我很抱歉,但我不知道是什么规律卡纸。由于没有其他人提供了一个答案,我将只提供我对它的理解。

升压是类和函数为C ++可用于各种任务有用的集合。类和增强的功能分为库。一些库具有在其中您可以通过使用一个#include预处理语句简单使用头文件中的他们的代码,而其他(如文件系统或正则表达式库)有他们的.cpp文件实现的一部分。

编译这些.cpp文件可以采取的年龄(这就像这取决于你正在编译什么30分钟),这将是一个真正的痛苦,如果每次要重新编译程序的时候花了半小时。所以,他们的所作所为是只适用于一部分保存在.cpp文件这些库,你可以预编译它们放入一个文件.LIB,这是提升拥堵的目的。这意味着你只需要花上半个小时编译它们的一次,然后从此你再也不用等上半个小时。

不过,你可以想像,每个boost库由许多cpp文件和许多头文件,并有各自的很多不同的口味(调试版本,发行版,多线程等),所以它不是一个简单的过程,只是自己编译Boost库。这就是升压果酱进来,你给它的命令编译库,然后它发出的所有命令你的编译器,并通过它的结束,你就会有预编译.lib文件的集合,一个用于每个不同的风味各库。头文件以某种方式告诉链接它的lib文件,包括,所以如果你有正确的路径设置,预编译的.lib文件的正确味道会自动链接到您的程序,从而节省你有30分钟的合辑。

您可以看到图书馆需要什么,通过升压果酱编译什么库通过查看此页面并不:的 http://www.boost.org/doc/libs/1_37_0 - 如果库不需要一个lib文件(并因此不需要你用升压果酱第一混乱),它会说“建设和链接:头只”,而如果库确实需要您预编译一个lib文件,它会说“建设和链接:自动链接”。

另外,如果你使用的是Windows,你可以下载预编译的.lib文件,所以你从来没有使用升压果酱。要得到的是,你应该做的就是去www.boost.org页面,进入入门部分,并按照它一路过关斩将,只是为了确保你正确地拥有一切设置。一个在Windows版本页面的链接,告诉你在哪里可以找到预编译.lib文件。

其他提示

我使用 Boost Jam 进行跨平台 C++ 开发。我选择它是因为

  • 我希望我的代码能够在 Boost 构建的任何地方构建,
  • 它使用相对简单的声明性语言来指定如何构建目标,并且
  • 它可以构建所有不同风格的二进制文件(例如调试对比版本,32 位与 32 位64 位、msvc 与 64 位gcc)在一次调用中,在构建声明中绝对最小化与风格相关的异常。

您可以使用特定于风味的设置来细化通用规则,而不是为每种风味排列编写单独的规则。该语法并不完全是我所选择的,但并不难习惯。

本文将 Boost Jam 与 CMake、SCons 和 Eclipse CDT 进行了比较: http://syrcose.ispras.ru/2009/files/04_paper.pdf

我的理解是,Boost Jam 是由 Boost 社区维护的 Perforce Jam 的一个分支,并且 Perforce Jam 不再被积极维护( 发行说明 最后一次更新是在 2003 年 4 月)。

当然,如果您不关心跨平台开发,还有更简单的方法可以选择,正如其他人在这里提到的那样。就我个人而言,我一直想重新审视 Eclipse CDT;5 年前它似乎还不能用,但我听说它已经取得了很大的进步。

由于构建工具,我不会迁移到果酱的选择。有更好的打造系统,在那里 - 的C / C ++,QMAKE Qt的,蚂蚁为Java,南特和MSBuild的CMake的/ SCons的为.NET,等等。他们可能不是技术上的优势,但他们将不太痛苦的使用仅仅是因为更多的人熟悉他们(在另一方面,他们可能是技术上的优势,当然:d)。

scroll top