1. 程式人生 > >在 windows 下安裝 Boost 1.62.0

在 windows 下安裝 Boost 1.62.0

目錄

1. 獲得Boost

2. 解壓Boost

解壓 boost_1_62_0.zip ,比如解壓到 D:\Program Files\boost\boost_1_62_0

3. 僅需標頭檔案的庫

許多人會問:“我該如何安裝Boost庫?” 實際上,常使用的boost庫函式是不需要安裝的。

無需安裝的庫函式如下:
- Boost.Chrono
- Boost.Context
- Boost.Filesystem
- Boost.GraphParallel
- Boost.IOStreams
- Boost.Locale
- Boost.MPI
- Boost.ProgramOptions
- Boost.Python (see the Boost.Python build documentation before building and installing it)
- Boost.Regex
- Boost.Serialization
- Boost.Signals
- Boost.System
- Boost.Thread
- Boost.Timer
- Boost.Wave

需要安裝的庫函式如下:
- Boost.DateTime
- Boost.Graph
- Boost.Random
- Boost.Exception

4. 用Boost跑一個程式

我們用無需安裝的庫函式來執行一個程式,code如下,命名為:example.cpp

#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) << " " ); }

用 Visual Studio IDE 來執行

  • 新建一個專案 New > Project
  • 選擇win32控制檯 Visual C++ > Win32
  • 建立一個名為 “example” 的專案
  • 在專案屬性 Properties 中新增包含目錄 Configuration Properties > C/C++ > General > Additional Include Directories
    ,例如D:\Program Files\boost\boost_1_62_0
  • 更改配置 將Configuration Properties > C/C++ > Precompiled Headers從* Use Precompiled Header (/Yu)* 改為* Not Using Precompiled Headers*。
  • 將寫好的example.cpp新增到專案的原始檔中
  • 最後build example,再bulid solution

OK了,按Ctrl+F5執行程式,在命令列中輸入

1 2 3

那麼應該輸出

3 6 9

5. 使用需要安裝的Boost庫函式

Boost少數需要編譯的庫函式在windows下安裝十分方便。首先,進入命令列模式,可以依次
Ctrl+R > cmd

在命令列中依次輸入下面2行,從而將檔案目錄轉到boost所在資料夾

D:

cd D:\Program Files\boost\boost_1_62_0 

然後再依次輸入下面2行進行安裝。注意:安裝完先別關閉視窗

bootstrap

.\b2

安裝完後會視窗有如下的資訊:

Boost

The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
    D:\Program Files\boost\boost_1_62_0
The following directory should be added to linker library paths:
    D:\Program Files\boost\boost_1_62_0\stage\lib

其中的兩個路徑後面需要依次新增到專案的包含目錄庫目錄中,故請先別關閉視窗。

6. 使用需要安裝的Boost庫函式跑一個程式

將剛才的example.cpp中的內容換成如下程式:

#include <boost/regex.hpp>
#include <iostream>
#include <string>

int main()
{
    std::string line;
    boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );

    while (std::cin)
    {
        std::getline(std::cin, line);
        boost::smatch matches;
        if (boost::regex_match(line, matches, pat))
            std::cout << matches[2] << std::endl;
    }
}

此外,新建一個名為jayne.txt的文件放在桌面,文件內容如下:

To: George Shmidlap
From: Rita Marlowe
Subject: Will Success Spoil Rock Hunter?
---
See subject.

用 Visual Studio IDE 來執行

  • 進入example的專案屬性 Properties
  • 新增庫目錄Configuration Properties > Linker > Additional Library Directories,例如D:\Program Files\boost\boost_1_62_0\stage\lib (根據安裝顯示的結果來新增,請見上文 第5節 )
  • 最後build example,再bulid solution

執行這個程式

在命令列視窗中輸入:

[你的程式目錄]\example.exe < [你的檔案目錄]\jayne.txt

例如,我的是:

D:\VC_TEST\Boost\example\exmaple\Debug\example.exe < C:\Users\Administrator\Desktop\jayne.txt

程式將輸出:

Will Success Spoil Rock Hunter?

7. 參考網站