1. 程式人生 > >vs 2012 Boost 庫安裝過程與例項

vs 2012 Boost 庫安裝過程與例項

準備工作:安裝好vs2012 ,下好 boost(地址:www.boost.org  boost_1_55_0.zip

步驟:

1.解壓到指定資料夾(我的是 D:\boost),解壓後 得到 目錄  D:/boost/boost_1_55_0/


2.開啟VS2012,找到 VS TOOLS--------->     VS命令提示


3.進入dos視窗,在DOS視窗下輸入命令   CD D:/boost/boost_1_55_0


4.進入這個目錄後,bootstrap,便生成bjam.exe檔案在你的D:/boost目錄下,花費幾分鐘。


5.輸入bjam toolset=msvc-12.0 variant=debug,release threading=multi link=static,便生成boost庫 ,時間略長


這樣就已經完成了安裝編譯工作,下面是如何使用




首先,隨便新建一個專案,跟正常的一樣,專案建好後



專案名位置: 點選右鍵-------------------->  屬性  ---------------------->C++ 目錄 




把  包含目錄 (include directory)開啟  指定到  剛才解壓的資料夾    我的是  D:/boost/boost_1_55_0

再把 庫目錄(library directory)   開啟,指定到 D:/boost/boost_1_55_0/stage

就可以開始使用



例項:
實現型別轉換:
<span style="font-size:18px;">#include "iostream"
#include <boost/lexical_cast.hpp>
using namespace std;

void main()
{
using boost::lexical_cast;
int a=lexical_cast<int>(123);
double b=lexical_cast<double>(13.34);

cout<<a<<"     "<<b<<endl;
}

補充:  在用到執行緒庫時,提示 

 1>LINK : fatal error LNK1104: 無法開啟檔案“libboost_thread-vc110-mt-gd-1_55.lib” 

解決辦法:

bjam stage --toolset=msvc-9.0 --stagedir="D:\boost\Lib" link=shared runtime-link=shared threading=multi debug release
 
bjam stage --toolset=msvc-9.0 --stagedir="<span style="font-family: Arial, Helvetica, sans-serif;">D:\boost\Lib</span><span style="font-family: Arial, Helvetica, sans-serif;">" link=static runtime-link=static threading=multi debug release</span>
<span style="font-size:24px;">把編譯器 選為  msvc-11.0  把生成的 lib資料夾 新增到  library directory 中即可 </span>
</pre><pre code_snippet_id="438289" snippet_file_name="blog_20140730_3_7656864" name="code" class="cpp"><span style="font-size:24px;">測試 程式:</span>
</pre><span style="font-size:24px;"> </span><p></p><pre code_snippet_id="438289" snippet_file_name="blog_20140730_3_7656864" name="code" class="cpp">
#include "iostream"
#include <boost/lexical_cast.hpp>
#include <boost/thread/thread.hpp>
using namespace std;

void Hello()
	{
	  cout<<"Hello World"<<endl;
	}
void main()
{
 boost::thread thrd(&Hello);
 thrd.join();
}