1. 程式人生 > >Boost---在Windows上的入門(1)

Boost---在Windows上的入門(1)

準備好了嗎?

我們走吧!

在 Windows 上入門

Cygwin和MinGW使用者注意


如果您計劃使用您從 Windows 命令提示符的工具,你在正確的地方。如果你打算建立從Cygwin bash shell,你實際上跑步在 POSIX 的平臺上,應該按照入門對 Unix 變體。其他命令外殼, MinGW下面,如不支援 — — 他們可能或可能不工作。

索引

  • 索引


    1 獲得提升
    2 Boost 發行
    3 僅有文檔案的庫
    4 建立一個簡單的程式,使用 Boost
    4.1 建立從 Visual Studio IDE
    4.2,或從命令提示符處生成
    4.3 錯誤和警告
    5 準備使用提升圖書館二進位制檔案
    5.1 簡化生成來源
    5.2 或生成二進位制檔案來源
    5.2.1 安裝 Boost.Build
    5.2.2 確定你的工具集
    5.2.3 選擇生成目錄
    5.2.4 呼叫b2
    5.3 預期生成輸出
    5.4 在的情況下生成錯誤
    6 到 Boost 庫連結您的程式
    從 Visual Studio IDE 中的 6.1 連結
    6.2 版或從命令提示符下的連結
    6.3 圖書館命名
    6.4 測試程式
    7 結論和進一步的資源
1 獲得提升


搞一份刺激的最可靠方法是下載boost_1_63_0.7z或boost_1_63_0.zip並解壓它來安裝完整的 Boost 發行。一

這是最終的目錄結構示意圖︰

boost_1_63_0\ .................The “boost root directory” 根目錄

index.htm .........boost\ .........................All Boost Header files 所有標頭檔案目錄lib\ .....................precompiled library binaries 重新編譯的庫二進位制檔案
libs\ ............Tests, .cpps, docs, etc., by library 測試、原始碼、文件等庫的形式index.html ........Library documentation starts here 庫的文件入門algorithm\ any\ array\…more libraries…status\ .........................Boost-wide test suite 全升壓測試套件tools\ ...........Utilities, e.g. Boost.Build, quickbook, bcp
工具集more\ ..........................Policy documents, etc. 策略文件doc\ ...............A subset of all Boost library docs 所有庫文件的子系統

它是重要的是要注意以下幾點︰

  1. 文件和郵件列表中,(經常C:\Program Files\boost\boost_1_63_0)根目錄的路徑有時被稱為$BOOST_ROOT

  2. 若要編譯任何刺激方案中,您需要包含在你#include路徑提高\子目錄的目錄。具體步驟為建立在 Microsoft Visual Studio 中的#include路徑遵循本文件; 稍後的如果您使用另一個 IDE,有關說明請參閱您的產品文件。

  3. 因為所有刺激的標頭檔案具有.hpp副檔名的檔案,和促進根的$BOOST_ROOT\子目錄中生活,#include指令將看起來像︰

    #include <boost/whatever.hpp>
    

    #include "boost/whatever.hpp"
    

    根據自己的喜好使用尖括號有關包括。甚至 Windows 使用者可以的 (和可移植性的原因,大概應該) 使用正斜槓中的#include指令;您的編譯器並不關心。

  4. 不要被doc\子目錄所困擾;它只包含 Boost 文件的子集。入手libs\index.html ,如果你正在尋找的全貌。


標題組織


Boost 庫標頭檔案的組織並不完全統一,但大多數庫遵循幾個模式︰


一些舊的庫和大多數很小庫置於所有公共標頭檔案直接放入boost\.


大多數庫的標頭檔案存在於boost\.子目錄中,以庫命名的後面。例如,你會發現在 Python 庫def.hpp頭
boost\python\def.hpp.


在boost中,一些庫有在"代理標頭檔案, 包含了其他所有的標頭檔案。例如, Boost.Python的代理標頭檔案
boost\python.hpp.


大多數相簿在boost\子目錄中放置自己的資料夾,稱為detail\ 或者aux_\。不要指望在這些目錄中發現任何可以使用。

3 僅有標頭檔案的庫

很多人想要知道的第一件事是,"如何編譯Boost?",好訊息是,通常情況下,沒有必要編譯。

不需要編譯是什麼意思?

大多數的 Boost 庫是僅有標頭檔案︰ 他們包括完全的標頭檔案包含模板和行內函數,並且無需單獨編譯的庫二進位制檔案或特殊待遇連結時。

那必須單獨編譯的唯一的 Boost 庫是︰
Boost.Chrono
Boost.Context
Boost.Filesystem
Boost.GraphParallel
Boost.IOStreams
Boost.Locale
Boost.Log (見構建文件)
Boost.MPI
Boost.ProgramOptions
Boost.Python (見Boost.Python 構建文件之前構建和安裝它)
Boost.Regex
Boost.Serialization
Boost.Signals
Boost.System
Boost.Thread
Boost.Timer
Boost.Wave


幾個庫有可選單獨編譯的二進位制檔案︰
Boost.DateTime具有二進位制元件,只需時如果你使用的其to_string/from_string或序列化的功能,或如果你的目標 Visual c + + 6.x 或 Borland。
Boost.Graph也有二進位制元件,只需時如果你打算GraphViz 檔案解析.
Boost.Math具有二進位制元件為 TR1 和 C99 cmath 功能。
Boost.Random有一個二進位制的元件,它只需要如果你使用的random_device.
雖然,可以在"僅標題"或"單獨編譯"模式中,使用Boost.Test 單獨的編譯推薦用於嚴重.
Boost.Exception提供了非侵入性執行 32 位 _MSC_VER exception_ptr = = 1310年和 _MSC_VER = = 1400,需要單獨編譯的二進位制檔案。這是由 #define BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR 啟用。