2013-10-12 41 views
0

我已經下載了boost,它是成千上萬個文件的海量目錄。我有gcc 3.4.5 - 一箇舊版本,與現在發佈的版本比較,但它與我一直在使用的舊程序一起運行。我正在考慮通過安裝boost來讓我的程序更具優勢,特別是shared_ptr thingy似乎是一個很好的補充。我的問題是安裝boost可能會導致我的程序不再運行,或者boost庫文件是完全獨立的對象嗎?安裝boost會不會搞亂我的程序?

+0

我也有同樣的問題。我試圖下載AMD-64位機器的升級,但安裝失敗。我無法將其移植到64位機器上。所以我忘了它。 – Juniar

+3

那個版本不老,它是古代*。你應該真的更新你的編譯器。 – GManNickG

+0

不要關注'boost :: shared_ptr'並直接轉到'std :: shared_ptr'。由於無論如何您都會進行源代碼重寫,爲什麼選擇較舊的非標準替代方案? 3.x在這一點上是古老的。 –

回答

0

如果我理解了正確的問題,並忽略了編譯器版本問題,答案是肯定的。不是僅標題的Boost庫通常是作爲一組動態庫(即根據平臺設置的一組.dll,.so或.dylib文件)開箱即用的。

建築及安裝增壓的新版本可因此搞亂在下列情況下您現有安裝的程序:

  • 如果您已經安裝在系統上的程序,對一些現有版本的鏈接在運行時無頭Boost庫

  • ,如果新的版本已經有界面的改變或細微的變化實施

那麼你現有的程序可能會被你安裝的較新的boost庫弄亂了(無法運行或微妙的錯誤,取決於更精確的情況細節)。

0

我不完全理解你的問題。你在談論分發二進制文件嗎?您可以靜態和動態鏈接增強。如果你靜態鏈接它們,你的二進制文件的大小會變得更大一些,但是你並不依賴於boost系統庫。這是使用Windows執行此操作的典型方法。在基於Linux的系統中,boost通常與系統庫動態鏈接,並且通常非常可靠。然而,像文件系統或程序選項這樣的一些模塊記錄了不兼容的API更改。

或者你在談論與古代編譯器版本的兼容性嗎? Boost與這樣一箇舊的GCC不是100%兼容,但核心功能應該可以工作。

相關問題