boost_1_48_0 在VS2008下的安装 Boost.Asio安装
生活随笔
收集整理的這篇文章主要介紹了
boost_1_48_0 在VS2008下的安装 Boost.Asio安装
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
第一步:到官網(wǎng)www.boost.org,下載boost最新版boost_1_48_0.zip
?
第二步:將boost壓縮包解壓到C盤根目錄下(在C盤操作簡(jiǎn)單,不會(huì)出錯(cuò)),目錄為C:\BOOST_1_48_0,里面就是boost的源碼和需要編譯的文件及文檔資料
?
第三步:用打開一個(gè)cmd命令窗口,在C:\Program Files\Microsoft Visual Studio 9.0\VC\bin目錄下找到VCVARS32.bat,拖到cmd命令窗口,按回車
?
第四步:將cmd中的目錄跳轉(zhuǎn)到C:/boost_1_48_0/tools/build/v2下,拖動(dòng)bootstrap.bat批處理文件到cmd,,按回車鍵,隨即就會(huì)在C:/boost_1_48_0/tools/build/v2下生產(chǎn)一個(gè)bjam.exe和b2.exe。
?
第五步: 將bjam.exe復(fù)制或移動(dòng)到boost的根目錄下,即C:/boost_1_48_0下面。
?
第六步:將cmd命令中的目錄跳到boost的根目錄下,然后,輸入
bjam --build-type=complete --with-regex --toolset=msvc-9.0 stage?
? ? ? ?bjam --build-type=complete --with-system --toolset=msvc-9.0 stage?
? ? ? ?bjam --build-type=complete --with-thread ?--toolset=msvc-9.0 stage?
? ? ? ?bjam --build-type=complete --with-date_time --toolset=msvc-9.0 stage
注意:整個(gè)操作過(guò)程中cmd命令窗口必須保證是開始打開的那個(gè)
附1:cmd 目錄跳轉(zhuǎn)指令 舉例,例如,跳到d盤下的一個(gè)名為test的目錄下,則輸入cd ?d:\test按回車。
我用是就是VS2008,照著上面的步驟操作完后,最后按照上面提示的分別在include和lib中包含,結(jié)果還是沒(méi)有通過(guò)。最后直接include和lib中直接包含C:\boost_1_48_0目錄,程序成功通過(guò)編譯和鏈接!!
boost_1_48_0 在VS2008下的安裝 Boost.Asio安裝 - luolired - Luolired
?
?
============================================================
其他說(shuō)明:
以后還需要其他庫(kù)怎么辦?
按照上面的套用就行了。比如你的代碼里有#include <boost/serialization/vector.hpp>,很明顯你需要serialization庫(kù),bjam --build-type=complete --with- serialization --toolset=msvc-9.0 stage。
網(wǎng)上找的一些有用的資料:
編譯參數(shù):
stage/install :stage表示只生成庫(kù)(dll和lib),install還會(huì)生成包含頭文件的include目錄。本人推薦使用 stage,因?yàn)閕nstall生成的這個(gè)include目錄實(shí)際就是boost安裝包解壓縮后的boost目錄(E:/SDK /boost_1_39_0/boost,只比include目錄多幾個(gè)非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套頭文件,這樣既節(jié)省編譯時(shí)間,也節(jié)省硬盤空間。
toolset :指定編譯器,可選的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。
without/with :選擇不編譯/編譯哪些庫(kù)。本人不需要編譯python庫(kù),所以排除之,可以根據(jù)各人需要選擇,默認(rèn)是全部編譯。但是需要注意,如果選擇編譯python的話,是需要python語(yǔ)言支持的,應(yīng)該到python官方主頁(yè)http://www.python.org/下載安裝。
stagedir/prefix :stage時(shí)使用stagedir,install時(shí)使用prefix,表示編譯生成文件的路徑。推薦給不同的IDE指定不同的目錄,如VS2008對(duì)應(yīng)的是E:/SDK/boost_1_39_0/vc9/lib,VC6對(duì)應(yīng)的是E:/SDK/boost_1_39_0 /vc6/lib,否則都生成到一個(gè)目錄下面,難以管理。如果使用了install參數(shù),那么還將生成頭文件目錄,vc9對(duì)應(yīng)的就是
E:/SDK /boost_1_39_0/vc9/include/boost-1_39/boost,vc6類似(光這路徑都這樣累贅,還是使用stage好)。
build-dir :編譯生成的中間文件的路徑。這個(gè)本人這里沒(méi)用到,默認(rèn)就在根目錄(E:/SDK/boost_1_39_0)下,目錄名為bin.v2,等編譯完成后可將這個(gè)目錄全部刪除(沒(méi)用了),所以不需要去設(shè)置。
link :生成動(dòng)態(tài)鏈接庫(kù)/靜態(tài)鏈接庫(kù)。生成動(dòng)態(tài)鏈接庫(kù)需使用shared方式,生成靜態(tài)鏈接庫(kù)需使用static方式。這里需要注意的是,static 方式下,最終生成的很多靜態(tài)鏈接庫(kù)大小都在幾兆、幾十兆,甚至接近百兆。這么大的庫(kù)我們一般是不會(huì)采用靜態(tài)鏈接方式的,所以這些庫(kù)不推薦以static方式編譯(without掉);如果已經(jīng)編譯了趕快刪,肯定沒(méi)用,否則將占用近1G的硬盤空間。以下是巨型庫(kù)黑名單:wave、graph、math、 regex、test、program_options、serialization、signals。
runtime-link :動(dòng)態(tài)/靜態(tài)鏈接C/C++運(yùn)行時(shí)庫(kù)。同樣有shared和static兩種方式,這樣runtime-link和link一共可以產(chǎn)生4種組合方式。雖然它和link屬性沒(méi)有直接關(guān)系,但我們習(xí)慣上,一個(gè)工程如果用動(dòng)態(tài)鏈接那么所有庫(kù)都用動(dòng)態(tài)鏈接,如果用靜態(tài)鏈接那么所有庫(kù)都用靜態(tài)鏈接。所以這樣其實(shí)只需要編譯2種組合即可,即link=shared runtime-link=shared和link=static runtime-link=static。
threading :單/多線程編譯。一般都寫多線程程序,當(dāng)然要指定multi方式了;如果需要編寫單線程程序,那么還需要編譯單線程庫(kù),可以使用single方式。
debug/release :編譯debug/release版本。一般都是程序的debug版本對(duì)應(yīng)庫(kù)的debug版本,所以兩個(gè)都編譯。
?
??
// over.cpp : Defines the entry point for the console ? application.
//
#include "stdafx.h"
#include ? <iostream>
#include <boost/asio.hpp>
#include ? <boost/date_time/posix_time/posix_time.hpp>
??
int main()
{
?boost::asio::io_service ? io;
?boost::asio::deadline_timer t(io, ? boost::posix_time::seconds(5));
?t.wait();
?std::cout << ? "Hello, world!\n";
?return 0;
}
boost_1_48_0 在VS2008下的安裝 Boost.Asio安裝 - luolired - Luolired
?
?
fatal error LNK1104: cannot open file 'libboost_regex-vc80-mt-gd-1_48.lib'?
Vs 中添加boost庫(kù)編譯的時(shí)候出現(xiàn)了這個(gè)問(wèn)題
弄了好久才找出問(wèn)題
兩個(gè)點(diǎn):
1.Project-->屬性-->C/C++-->General-->Additional Include Derectories中加入你的boost目錄
2.Project-->屬性-->Linker-->General-->Additional Library Derectories中加入<boost>/stage/lib
?
第二步:將boost壓縮包解壓到C盤根目錄下(在C盤操作簡(jiǎn)單,不會(huì)出錯(cuò)),目錄為C:\BOOST_1_48_0,里面就是boost的源碼和需要編譯的文件及文檔資料
?
第三步:用打開一個(gè)cmd命令窗口,在C:\Program Files\Microsoft Visual Studio 9.0\VC\bin目錄下找到VCVARS32.bat,拖到cmd命令窗口,按回車
?
第四步:將cmd中的目錄跳轉(zhuǎn)到C:/boost_1_48_0/tools/build/v2下,拖動(dòng)bootstrap.bat批處理文件到cmd,,按回車鍵,隨即就會(huì)在C:/boost_1_48_0/tools/build/v2下生產(chǎn)一個(gè)bjam.exe和b2.exe。
?
第五步: 將bjam.exe復(fù)制或移動(dòng)到boost的根目錄下,即C:/boost_1_48_0下面。
?
第六步:將cmd命令中的目錄跳到boost的根目錄下,然后,輸入
bjam --build-type=complete --with-regex --toolset=msvc-9.0 stage?
? ? ? ?bjam --build-type=complete --with-system --toolset=msvc-9.0 stage?
? ? ? ?bjam --build-type=complete --with-thread ?--toolset=msvc-9.0 stage?
? ? ? ?bjam --build-type=complete --with-date_time --toolset=msvc-9.0 stage
注意:整個(gè)操作過(guò)程中cmd命令窗口必須保證是開始打開的那個(gè)
附1:cmd 目錄跳轉(zhuǎn)指令 舉例,例如,跳到d盤下的一個(gè)名為test的目錄下,則輸入cd ?d:\test按回車。
我用是就是VS2008,照著上面的步驟操作完后,最后按照上面提示的分別在include和lib中包含,結(jié)果還是沒(méi)有通過(guò)。最后直接include和lib中直接包含C:\boost_1_48_0目錄,程序成功通過(guò)編譯和鏈接!!
boost_1_48_0 在VS2008下的安裝 Boost.Asio安裝 - luolired - Luolired
?
?
============================================================
其他說(shuō)明:
以后還需要其他庫(kù)怎么辦?
按照上面的套用就行了。比如你的代碼里有#include <boost/serialization/vector.hpp>,很明顯你需要serialization庫(kù),bjam --build-type=complete --with- serialization --toolset=msvc-9.0 stage。
網(wǎng)上找的一些有用的資料:
編譯參數(shù):
stage/install :stage表示只生成庫(kù)(dll和lib),install還會(huì)生成包含頭文件的include目錄。本人推薦使用 stage,因?yàn)閕nstall生成的這個(gè)include目錄實(shí)際就是boost安裝包解壓縮后的boost目錄(E:/SDK /boost_1_39_0/boost,只比include目錄多幾個(gè)非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套頭文件,這樣既節(jié)省編譯時(shí)間,也節(jié)省硬盤空間。
toolset :指定編譯器,可選的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。
without/with :選擇不編譯/編譯哪些庫(kù)。本人不需要編譯python庫(kù),所以排除之,可以根據(jù)各人需要選擇,默認(rèn)是全部編譯。但是需要注意,如果選擇編譯python的話,是需要python語(yǔ)言支持的,應(yīng)該到python官方主頁(yè)http://www.python.org/下載安裝。
stagedir/prefix :stage時(shí)使用stagedir,install時(shí)使用prefix,表示編譯生成文件的路徑。推薦給不同的IDE指定不同的目錄,如VS2008對(duì)應(yīng)的是E:/SDK/boost_1_39_0/vc9/lib,VC6對(duì)應(yīng)的是E:/SDK/boost_1_39_0 /vc6/lib,否則都生成到一個(gè)目錄下面,難以管理。如果使用了install參數(shù),那么還將生成頭文件目錄,vc9對(duì)應(yīng)的就是
E:/SDK /boost_1_39_0/vc9/include/boost-1_39/boost,vc6類似(光這路徑都這樣累贅,還是使用stage好)。
build-dir :編譯生成的中間文件的路徑。這個(gè)本人這里沒(méi)用到,默認(rèn)就在根目錄(E:/SDK/boost_1_39_0)下,目錄名為bin.v2,等編譯完成后可將這個(gè)目錄全部刪除(沒(méi)用了),所以不需要去設(shè)置。
link :生成動(dòng)態(tài)鏈接庫(kù)/靜態(tài)鏈接庫(kù)。生成動(dòng)態(tài)鏈接庫(kù)需使用shared方式,生成靜態(tài)鏈接庫(kù)需使用static方式。這里需要注意的是,static 方式下,最終生成的很多靜態(tài)鏈接庫(kù)大小都在幾兆、幾十兆,甚至接近百兆。這么大的庫(kù)我們一般是不會(huì)采用靜態(tài)鏈接方式的,所以這些庫(kù)不推薦以static方式編譯(without掉);如果已經(jīng)編譯了趕快刪,肯定沒(méi)用,否則將占用近1G的硬盤空間。以下是巨型庫(kù)黑名單:wave、graph、math、 regex、test、program_options、serialization、signals。
runtime-link :動(dòng)態(tài)/靜態(tài)鏈接C/C++運(yùn)行時(shí)庫(kù)。同樣有shared和static兩種方式,這樣runtime-link和link一共可以產(chǎn)生4種組合方式。雖然它和link屬性沒(méi)有直接關(guān)系,但我們習(xí)慣上,一個(gè)工程如果用動(dòng)態(tài)鏈接那么所有庫(kù)都用動(dòng)態(tài)鏈接,如果用靜態(tài)鏈接那么所有庫(kù)都用靜態(tài)鏈接。所以這樣其實(shí)只需要編譯2種組合即可,即link=shared runtime-link=shared和link=static runtime-link=static。
threading :單/多線程編譯。一般都寫多線程程序,當(dāng)然要指定multi方式了;如果需要編寫單線程程序,那么還需要編譯單線程庫(kù),可以使用single方式。
debug/release :編譯debug/release版本。一般都是程序的debug版本對(duì)應(yīng)庫(kù)的debug版本,所以兩個(gè)都編譯。
?
??
// over.cpp : Defines the entry point for the console ? application.
//
#include "stdafx.h"
#include ? <iostream>
#include <boost/asio.hpp>
#include ? <boost/date_time/posix_time/posix_time.hpp>
??
int main()
{
?boost::asio::io_service ? io;
?boost::asio::deadline_timer t(io, ? boost::posix_time::seconds(5));
?t.wait();
?std::cout << ? "Hello, world!\n";
?return 0;
}
boost_1_48_0 在VS2008下的安裝 Boost.Asio安裝 - luolired - Luolired
?
?
fatal error LNK1104: cannot open file 'libboost_regex-vc80-mt-gd-1_48.lib'?
Vs 中添加boost庫(kù)編譯的時(shí)候出現(xiàn)了這個(gè)問(wèn)題
弄了好久才找出問(wèn)題
兩個(gè)點(diǎn):
1.Project-->屬性-->C/C++-->General-->Additional Include Derectories中加入你的boost目錄
2.Project-->屬性-->Linker-->General-->Additional Library Derectories中加入<boost>/stage/lib
總結(jié)
以上是生活随笔為你收集整理的boost_1_48_0 在VS2008下的安装 Boost.Asio安装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: MySQL规范「索引规范」码出高效,码出
- 下一篇: XP桌面背景文件路径