VS2017下編譯和配置boost庫及安裝OpenSSL

第一步:
到官網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 來進行安裝使用。



發佈了67 篇原創文章 · 獲贊 36 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章