boost庫在windows下編譯好了,以后試下。參考:http://leaver.me/archives/721.html
實踐是最好的辦法。。學習C++,想試試線程,然后打算用boost庫,結果boost庫編譯差點嚇到我。。沒看到比較完整的安裝教程。。一直耽擱。今天動手。完成了。方法記錄如下:
1.下載boost
從boost官網( http://www.boost.org )上下載最新的boost版本,現在最新是1.49版本,解壓到自定義目錄(我解壓到了D:/program files,最終的目錄結構是D:\Program Files\boost_1_49_0)
2.編譯安裝
在D:\Program Files\boost_1_49_0的目錄下,有一個bootstrap.bat文件,直接雙擊運行。就會在同目錄生成b2.exe;bjam.exe兩個文件。
3.設定編譯環境
修改user-config.jam (D:\Program Files\boost_1_49_0\tools\build\v2\user-config.jam) 的MSVC configuration
# MSVC configuration
# Configure msvc (default version, searched for in standard locations and PATH).
# using msvc ;
在上面這段的下面直接添加如下的文字。
1
|
using
msvc
:
10.0
:
:
/
wd4819
/
D_CRT_SECURE_NO_DEPRECATE
/
D_SCL_SECURE_NO_DEPRECATE
/
D_SECURE_SCL
=
0
;
|
保存關閉。
4.開始編譯
點擊開始->所有程序->“Microsoft Visual Studio 2010”,指向“Visual Studio tools(工具)”,然后單擊“Visual Studio 2010 command prompt(命令提示)” 使用cd切換到D:\Program Files\boost_1_49_0目錄。這個就不說了
然后輸入如下的代碼:
1
2
3
|
b2
toolset
=
msvc
-
10.0
architecture
=
x86
instruction
-
set
=
i686
address
-
model
=
32
link
=
static
variant
=
debug
,
release
threading
=
multi
runtime
-
link
=
shared
--
without
-
python
--
without
-
mpi
--
without
-
wave
--
without
-
graph
--
without
-
math
--
without
-
serialization
stage
|
解釋一下命令的意思:
1.toolset:表示編譯器工具,我安裝的是VS2010,所以是msvc-10(如果你是VS2005,可以使用msvc-8.0 VS2008是msvc-9.0)
2.architecture:表示架構,也就是你的CPU架構,x86,x64,因為我安裝的是win7 32位,所以使用了x86的架構
3.instruction-set:表示指令集,依然是8086指令集
4.address-model:表示地址長度為32位
5.link:表示生成動態/靜態鏈接庫,動態鏈接庫是shared,靜態鏈接庫是static,一般都會編譯成靜態庫,因為給出程序的時候打包boost的庫會非常龐大
6.variant:表示生成的Debug或者release版本,一般情況下會兩種版本都會編譯出來的
7.threading:表示單/多線程編譯,一般我們的程序都會用到多線程,所以選擇了multi
8.runtime-link:表示動態/靜態鏈接C/C++運行時庫(C/C++ Runtime),我們選擇了動態鏈接
9.without/with:表示不需要編譯/需要編譯哪些庫,一些自己不用的庫可以無需編譯
10.stage/install:stage表示只生成庫文件(DLL和Lib),install還會生成包含頭文件的include目錄,推薦使用stage,因為boost_1_49\boost中就是boost庫完整的頭文件,所以無需再拷貝一份出來。編譯出來的庫會放在stage文件夾中
這樣一份完整的boost庫就生成了,剩下就是直接使用到項目中了。
其實編譯的具體命令都是可以自己寫的。如果你需要編譯所有。只需要使用下面的這行代碼
b2 –toolset=msvc-10.0 –build-type=complete
就可以了。
不出問題的話。就開始編譯了。。登個半個多小時吧。就會完成了。
5.設置vs
打開vs,新建一個工程。然后工程屬性。配置屬性->C/C++ ,附加包含目錄
填上
D:\Program Files\boost_1_49_0;%(AdditionalIncludeDirectories)
這個是最終的結果,你也可以手動添加
在左側選擇鏈接器->附加庫目錄,填上
D:\Program Files\boost_1_49_0\stage\lib;%(AdditionalLibraryDirectories)
就可以了。
6.測試
在你新建的工程里輸入如下的代碼。運行成功就說明可以了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <boost/thread/thread.hpp>
#include <iostream>
void
hello
(
)
{
std
::
cout
<<
"Hello world, I'm a thread!"
<<
std
::
endl
;
}
int
main
(
int
argc
,
char
*
argv
[
]
)
{
boost
::
thread
thrd
(
&hello
)
;
thrd
.
join
(
)
;
return
0
;
}
|