c++ - 从 SVN 更新 Boost Wave

标签 c++ boost visual-c++ race-condition

我正在使用的 boost 组件之一遇到了一些错误。经过一番分析后,我发现我不是唯一的问题,作者已经发布了一个修复程序,可以在 boost SVN 主干中找到。

如果我只想更新此组件并重用已构建的库,最好的方法是什么?该组件不仅仅是 header 。

  • 编译器:带有 SP1、TR1 的 MSVC 9
  • 操作系统:Vista
  • Boost:BoostPro 计算的 1.39
  • 有问题的组件:Boost Wave
  • 错误:竞争条件。该错误已于今年 5 月修复,但据我所知,他们尚未将其包含在任何版本中。

到目前为止我做了什么:

  • svn checkout wave 子目录
  • 替换了本地子目录
  • 现在我正在寻找一种方法来指定我想要只是构建wave

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

最佳答案

这就是我最终所做的:

  1. 首先,我检查了已修复问题的 Wave 库版本 (53230)。将其与本地拷贝进行比较后,我发现了以下更改:

    -wave 重用了 boost.iterator 实现,而不是提供自己的实现

    - flex_string 实现已更新

    - 引用计数器被原子化。这应该是错误修复

  2. 然后我简单地将 boost/wave 目录替换为 SVN 中的目录。我运行了 bootstrap.bat(如果使用 BoostPro,您必须从 boost 源 zip 中获取它),然后运行 ​​bjam:

    bjam --build-directory=构建工具集=msvc 变体=调试|发布链接=静态线程=多运行时链接=共享 --with-wave

    添加--with-wave只会构建wave及其依赖项。

  3. 此时我遇到了编译错误:看来 Spirit 也更新了。我从 SVN 下载了 Spirit (53252) 并重新发出了 bjam 命令。

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

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

关于c++ - 从 SVN 更新 Boost Wave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1316092/

相关文章:

c++ - 获取非侵入式 boost 序列化 C++ 的私有(private)数据成员

visual-c++ - 将 C++ OpenCV 程序移植到 Ubuntu

c++ - 你能在 C++ 中保护嵌套类吗?

c++ - 尝试重载输出运算符时,我无法遍历对象 vector

c++ - 来自 initializer_list 的三元运算符 + C++11 构造函数

user-interface - 在 MFC 中检测单个鼠标单击

c++ - Visual C++ 2008/2010 编译器的优化程度如何?

c++ - 使用 cmake 将 Eigen 库添加到 C++ 项目

c++ - 如何使用 boost::thread_group 使用多客户端服务器?

parsing - 如何以 boost spirit 正确解析保留字