1 簡介
boost是一個准C++標准庫,相當於STL的延續和擴充,它的設計理念和STL比較接近,都是利用泛型讓復用達到最大化。 boost主要包含以下幾個大類: 字符串及文本處理、容器、迭代器(iterator)、算法、函數對象和高階編程、泛型編程、 模板元編程、預處理元編程、並發編程、數學相關、糾錯和測試、數據結構、輸入/輸出、跨語言支持、內存相關、語法分析、雜項。
在 Caffe 中主要使用了 Boost 中的智能指針, 其自帶引用計數功能, 可避免共享指針時造成 內存泄漏或多次釋放。另外,pycaffe 使用 Boost Python 實現 C/C++和 Python 語言的連接,方便 Python 調用 C/C++設計的模塊。
2 boost的下載和安裝
我們可以在 boost官網 上下載最新的boost版本。由於boost庫可以像標准庫一樣在多個平台上運行 ,因此官方上只以源碼的形式提供。對於windows用戶我們往往想直接下載一個安裝組件直接安裝而不是自己編譯,我們可以在 這個網站 上直接下載對應的安裝組件, 下面我們就以這個網站為例介紹安裝組件的下載。
1. 打開網站,其界面顯示如
2. 目前穩定的版本是1.63因此這里我下載1.63版本。一般正在更新的開源軟件都會有一個最新版本和穩定版本, 如果我們不是在開發的話選擇穩定版本即可。選擇 *1.63.0* 之后,我們可用看到文件列表如下
3. 我們可以看到這里有許多的安裝文件。這是因為 boost windows的安裝版本不但和處理器位數有關, 而且還和visio studio的版本有關 。這里我們先將 DEPENDENCY_VERSIONS.txt 文件下載下來並查看, 可以發現其中有一段說明如下:
Microsoft Visual Studio 2005 - msvc-8.0 - Service Pack 1
Microsoft Visual Studio 2008 - msvc-9.0 - Service Pack 1
Microsoft Visual Studio 2010 - msvc-10.0 - Service Pack 1
Microsoft Visual Studio 2012 - msvc-11.0 - Update 4
Microsoft Visual Studio 2013 - msvc-12.0 - Update 3
4. 比如這里我們使用的是VS2012。那么我們就應該下載 boost_1_63_0-msvc-11.0-64.exe
或者 boost_1_63_0-msvc-11.0-32.exe
。下載完畢之后根據提示按步驟安裝即可。
3 boost的使用
關於boost的使用當然首先推薦 官方文檔 。 當然也可以參考后面提到的 本文主要的參考帖子。下面以官網下載的源文件版boost為例簡單介紹一些官網的入門例程。 這個例程在boost文件夾中的 index.html 也能找到。
1. 首先在visio studio中新建一個空的C++項目,這里將項目的名字命名為 boostTest
,然后添加一個源文件包含以下內容:
#include <boost/lambda/lambda.hpp>
#include <iostream> #include <iterator> #include <algorithm> int main() { using namespace boost::lambda; typedef std::istream_iterator<int> in; std::for_each( in(std::cin), in(), std::cout << (_1 * 3) << " " ); }
2. 工程建立完畢后,我們需要添加對應頭文件的搜索路徑,具體步驟如下:
* 在解決方案資源管理器中選中我們的項目( boostTest
),右鍵點擊在彈出的菜單中選擇 屬性(R)
, 或者直接使用快捷鍵 Alt+Enter
調出屬性對話框。
* 在對話框左側面板中依次選擇 配置屬性→C/C++→常規
,在右側面板中的 附加包含目錄
中添加我們的boost所在目錄, 如下圖所示(這里是以VS2015為例進行配置,其他版本的VS顯示可能略有不同):
* 然后再選擇左側面板中 配置屬性→C/C++→預編譯頭
,在右側面板中將 預編譯頭
設置為 不適用預編譯頭
(默認),如下圖所示:
* 配置完畢后,我們就可以編譯( Ctrl+Shift+B
)並運行( F5
)我們的程序了, 如果出現錯誤可以再重新檢查一遍配置過程或者查看boost文件夾中的 index.html 對應章節。運行結果如下 (在控制台輸入 1 2 3
返回對應的×2結果):
本文主要的參考帖子:
C++ Boost庫簡介
初識Boost C++