VS2017編譯boost庫
第一步:到官網http://www.boost.org/下載boost庫,最好下載最新版
第二步:解壓到D盤(其他盤也可),這裡以boost1.63版為例
第三步:開啟VS2017開發人員命令提示,英文名稱Developer Command Prompt VS for 2017
第四步:輸入命令d: ,進入D盤,再輸入命令cd D:\boost_1_63_0,進入D:\boost_1_63_0後,輸入命令bootstrap,等待1分鐘左右會在D:\boost_1_63_0
生成幾個檔案,最小化開發人員命令提示
第五步:在目錄D:\boost_1_63_0下有一個專案配置檔案project-config.jam,用記事本或其他文字編輯工具開啟,做如下修改:
import option ;
using msvc : 14.0 : "D:\Visual Studio 2017\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\cl.exe";
option.set keep-going : false ;
其中第二行的目錄是你VS2017的安裝目錄
第六步:最大化開發人員命令提示,輸入命令
b2 install --toolset=msvc-14.0 --prefix="c:\boost" --build-type=complete --without-python--without-mpi
上面的"c:\boost"是你生成的lib庫所在地,可以保持預設這個命令會在你的C盤裡生成一個編譯好的boost庫,編譯時間因電腦效能不同而不同,大概1~2個小時左右
下面進行配置vs2017:
第一步、新建專案
Visual C++-------win32控制檯
預設選擇完成。
第二步、複製程式碼
程式碼如下:
#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;
}
}
第三步、修改除錯平臺
因為編譯的靜態庫和動態連結是64位,選擇64位平臺
第四步、設定編譯環境及連結
專案------選項----C/C++附加包含目錄----連結器附加庫目錄
此項為標頭檔案目錄,要保證能找到標頭檔案,即C:\boost\boost_1_63_0中含有boost,而boost中為標頭檔案。
此項為標頭檔案目錄,要保證能找到標頭檔案,即C:\boost\boost_1_63_0中含有boost,而boost資料夾中為標頭檔案。
點選連結器,附加庫目錄為編譯時候產生的包含靜態庫或動態連結的資料夾,本文設定為編譯時候設定的C:\boost\bin1.63.0\VC14.0\lib。
如下圖所示:
將C:\boost\bin1.63.0\VC14.0\lib 貼上進去,確定。
Note:如果編譯時候找不到,則重新設定本步驟。
第四步、解決編譯時候產生的打不開檔案問題。
便有錯誤如下:
- (Win32): 已載入“C:\Windows\System32\ntdll.dll”。無法查詢或開啟 PDB 檔案。
解決措施:
點選除錯-----選項-----右邊勾上“啟用源伺服器支援”----左邊點“符號”—右邊勾選“微軟符號伺服器”。
右邊勾上“啟用源伺服器支援”。
左邊點“符號”—右邊勾選“微軟符號伺服器”。
第五步、除錯執行
使用Ctrl+f5
結果如下圖所示,則配置完成。