2009-08-22 58 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

那麼,您可以檢查日誌並查看修復問題的確切修訂版本,只修改版本並手動應用修補程序。

建議您不要只更新一個組件,因爲增加會大量重用,所以如果界面發生變化,您將開始獲得各種奇怪的行爲。也許如果你指定組件和錯誤,我們可以進一步幫助你。