第一步:
到官網http://www.boost.org/下載boost庫,最好下載1.6x最新版
第二步:解壓。
可解壓到固定的目錄,我是解壓到E:\mylib\boost
第三步:環境配置
VS2017更加註重跨平臺性,安裝文件較多,VC有三個版本,分別是arm、Hostx64、Hostx86,本文使用Hostx64。
注意,需要使用cl.exe. 默認安裝時,編譯器cl.exe並不在環境變量中,需要配置。
Ctrl+r輸入cmd,輸入cl,若顯示:'cl' 不是內部或外部命令,也不是可運行的程序或批處理文件。說明沒有環境變量。
配置環境變量:
計算機右擊-屬性-高級系統設置-環境變量-選擇Path編輯-添加cl的路徑:
E:\VS2017\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64
得到上述結果,說明環境配置完成。
第四步:開始編譯
右擊--更多—以管理員身份運行VS2017開發人員命令提示,英文名稱x64 Native Tools Command Prompt for VS 2017
1.輸入命令,進入目錄:
2.輸入命令: bootstrap.bat
等待一分鐘左右在E:\mylib\boost\boost_1_64_0生成幾個文件:
3.在E:\mylib\boost\boost_1_64_0下有一個項目配置文件project-config.jam,打開作如下修改:
第五步:安裝
在E:\mylib\boost\boost_1_64_0下新建一個目錄build存放編譯時產生的中間文件,編譯結束後可以刪除。
運行:
b2.exe stage --toolset=msvc-14.1 address-model=64 --stagedir="E:\mylib\boost\bin1.64.0\VC14.
1" threading=multi --build-type=complete --build-dir="E:\mylib\boost\boost_1_64_0\build"
注意版本問題:這裏是VC14.1
具體介紹:
--toolset:設置編譯器,如果用VC,設msvc, 用MinGW就設gcc。
stage:可選install,選stage只生成庫(靜態庫和動態庫),install還包含include目錄,其實,可以直接用我們下載下來的BOOST包裏的boost目錄,這個目錄和install生成的include目錄內容基本一樣。所以也就不用了。
--build-dir=”[temporary folder name”:編譯的臨時文件存放位置。
--stagedir=” stage folder name]”:存放編譯後庫文件的路徑,默認是stage。
--build-type=complete:編譯所有版本
{
variant=debug|release 決定編譯什麼版本(Debug or Release?)
link=static|shared 決定使用靜態庫還是動態庫。
threading=single|multi 決定使用單線程還是多線程庫。
runtime-link=static|shared 決定是靜態還是動態鏈接C/C++標準庫。
}
link:是動態庫還是靜態庫,static | shared,一般默認靜態。
address-mode:address-model=64,如果沒有這個屬性的話,會默認生成32位的平臺庫,加入這個選項才能生成64位的DLL。如果運行在VS32位的命令行下需要添加” architecture=x86”,筆者使用x64 Native Tools Command Prompt for VS 2017沒有x86與x64之間的矛盾,所以未設置。
這個過程大致需要半個小時:生成的這個文件夾就是庫文件和動態鏈接所在。中間文件build可以直接刪除。
第六步:在VS2017中的配置:
1.新建項目:
VisualC++/win32控制檯應用程序
應用程序設置選擇控制檯應用程序,附加選項選擇預編譯頭,完成即可。
2.粘貼代碼
// boostest.cpp : 定義控制檯應用程序的入口點。
//
#include "stdafx.h"
#include <boost/lexical_cast.hpp>
#include <iostream>
using namespace std;
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.0123456789");
string s0 = lexical_cast<string>(a);
string s1 = lexical_cast<string>(b);
cout << "number: " << a << " " << b << endl;
cout << "string: " << s0 << " " << s1 << endl;
int c = 0;
try {
c = lexical_cast<int>("abcd");
}
catch (boost::bad_lexical_cast& e) {
cout << e.what() << endl;
}
return 0;
}
3.修改調試平臺
因爲編譯的靜態庫和動態鏈接選擇是64位的,選擇64位平臺。
4.設置編譯環境和鏈接文件
1.設置頭文件目錄:
項目->屬性->C/C++->常規->附加包含目錄
添加:E:\mylib\boost\bin1.64.0路徑
2.設置庫文件目錄:
項目->屬性->鏈接器->常規->附加庫目錄
添加:E:\mylib\boost\bin1.64.0\VC14.1\lib路徑
第七步:調試運行
ctrl+F5
第八步:安裝OpenSSL
ssl庫在windows平臺編譯支要perl支持, 比較麻煩, 我們可以直接使用安裝的方式來使用本庫
詳見:https://slproweb.com/products/Win32OpenSSL.html 來進行安裝使用。