2009-08-22 56 views
2

我遇到了一些错误,进入我正在使用的升压组件之一。在分析了这个问题之后,我发现我并不是唯一的问题,并且作者已经发布了boost SVN中继中可用的修复。从SVN更新升压波

如果我只想更新这个组件并重用已经构建的库,那么最好的方法是什么?该组件不只是标题。

  • 编译器:MSVC 9 SP1,TR1
  • OS:Vista中
  • 升压:1.39从BoostPro计算
  • 车部件:升压波
  • 虫:竞争条件。这个bug在今年5月份得到了修正,但是据我所知,它们并没有包含在任何发布中。

我做了什么至今:

  • 波子目录
  • 的svn签替换本地子目录
  • 现在我正在寻找一种方式来指定我想建立 wave

我对重建整个boost lib有点厌倦。我不知道主干现在是否可以投入生产。

回答

2

这里是我落得这样做:

  1. 首先我检查了一波lib目录下的问题是固定的(53230)的版本。在将它分配到本地副本后,我发现了以下更改:

    - wave正在重新使用提升。迭代器实现的,而不是提供自己的

    - 在flex_string实施进行了更新

    - 一个参考计数器由原子。这应该是错误修正

  2. 然后,我简单地将我的boost/wave目录替换为SVN目录。我跑了bootstrap.bat(如果使用BoostPro,你必须从boost sources zip得到这个)然后我运行了bjam:

    bjam --build-directory = build toolset = msvc variant = debug | release link = static threading = multi runtime-link = shared --with-wave

    添加--with-wave将只生成wave及其依赖关系。

  3. 在这一点上我得到了编译错误:似乎Spirit也被更新了。我从SVN下载了Spirit(53252)并重新发布了bjam命令。

    该库构建干净,我复制这两个库到我的boost lib文件夹。

完成这些步骤之后,我重建了我的项目,并且崩溃错误消失了。

1

最好的办法:由diff荷兰国际集团在资源库中的变化建立一个补丁(例如,通过检查出库的一部分,使用svn diff),然后用patch(Unix的工具)应用补丁在你加速的安装文件。

这可能需要Windows上的类似Unix的控制台(例如Cygwin)。另外,你也许可以利用Windows SVN客户端,例如TortoiseSVN,但我不确定这是否允许在版本控制之外修补文件。

你在说头文件库吗?如果没有,您还需要重建Boost库的那部分,不幸的是我不认为这与BoostPro的Boost安装程序非常兼容。

+0

非header-lib。我已经做过差异化,但是我很好奇这是(重新)构建的。 – rpg 2009-08-22 14:39:02

1

那么,您可以检查日志并查看修复问题的确切修订版本,只修改版本并手动应用修补程序。

建议您不要只更新一个组件,因为增加会大量重用,所以如果界面发生变化,您将开始获得各种奇怪的行为。也许如果你指定组件和错误,我们可以进一步帮助你。