在 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
- 更改配置 將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
安裝完後會視窗有如下的資訊:
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?