VS2015編譯boost1.62
Boost
庫是一個可移植、提供源代碼的C++庫,作為標准庫的后備,是C++標准化進程的開發引擎之一。 Boost庫由C++標准委員會庫工作組成員發起,其中有些內容有望成為下一代C++標准庫內容。在C++社區中影響甚大,是不折不扣的“准”標准庫。Boost由於其對跨平台的強調,對標准C++的強調,與編寫平台無關。大部分boost庫功能的使用只需包括相應頭文件即可,少數(如正則表達式庫,文件系統庫等)需要鏈接庫。但Boost中也有很多是實驗性質的東西,在實際的開發中實用需要謹慎。
在VS下,boost的頭文件中會包含#pragma comment(lib,xxx)
的語句,所以可以不用在項目中添加相關的庫指定。
boost中大部分庫是僅有頭文件,不用編譯成庫的。
編譯好的庫可以到這里下載
鏈接:http://share.weiyun.com/712e3d95bb73d7378a8c34d3518d12f3 (密碼:2LNF)
1、源碼
源碼的下載可以直接去http://www.boost.org/網站下載。
我下載的地址是http://jaist.dl.sourceforge.net/project/boost/boost/1.62.0/boost_1_62_0.7z
2、生成編譯工具
boost庫自帶了bootstrap
腳本來生成一個構建工具b2
。打開命令行直接執行即可。
D:\development_library\boost\boost_1_62_0>bootstrap.bat --help
Building Boost.Build engine
Failed to build Boost.Build engine.
Please consult bootstrap.log for further diagnostics.
You can try to obtain a prebuilt binary from
http://sf.net/project/showfiles.php?group_id=7586&package_id=72941
Also, you can file an issue at http://svn.boost.org
Please attach bootstrap.log in that case.
這里出現了Failed to build Boost.Build engine.
錯誤,解決辦法很簡單,使用VS 2015 命令行提示符
來執行即可。
3、進行編譯
b2
工具的使用如下
b2 [options] [properties] [install|stage]
#options 選項
#properties 特性
#install|stage 安裝還是編譯到指定位置
編譯命令如下
#編譯
b2.exe --prefix=C:\Boost --build-type=complete --build-dir=build_tmp toolset=msvc-14.0 address-model=64 stage
#安裝
b2.exe --prefix=C:\Boost --build-type=complete --build-dir=build_tmp toolset=msvc-14.0 address-model=64 install
目標和相關選項:
選項 | 含義 |
---|---|
install | 安裝頭文件和編譯后的庫文件到配置的位置(如下)。 |
--prefix=<PREFIX> |
平台架構無關的文件(include/doc等)的安裝位置 win32默認在 C:\Boost Unix/Linux默認在 /usr/local |
--exec-prefix=<EPREFIX> |
安裝平台架構相關的文件在這里 默認與 <PREFIX> 相同 |
--libdir=<DIR> |
庫文件安裝目錄 默認 <EPREFIX>/lib |
--includedir=<HDRDIR> |
頭文件安裝目錄 默認 <PREFIX>/include |
stage | 僅構建和安裝編譯的庫文件到stage目錄 |
--stagedir=<STAGEDIR> |
安裝編譯的庫文件目錄 默認 ./stage |
其他選項:
選項 | 含義 |
---|---|
--build-type=<type> |
構建預定義的配置。 注意:構建哪些variants取決於各個庫的支持。 minimal (默認) 構建一個最小集(即只構建release版本。 在Windows上,構建debug和release模式下使用共享運行時的靜態多線程庫。 在Linux上,這些是release模式下的靜態和共享多線程庫)complete 構建debug和release版本 |
--build-dir=DIR | 構建指定目錄(默認中間文件會在源碼目錄下) 推薦!# |
--show-libraries | 顯示構建的Boost庫列表在安裝步驟,然后退出 |
--layout=<layout> |
確定是否選擇庫名和頭文件位置,一邊可以在同一系統上使用多個版本的Boost庫或多個編譯器編譯的。versioned 版本名,會影響庫文件名和頭文件路徑<HDRDIR> tagged boost二進制文件的名稱包括編譯的構建屬性(如variant和threading),但不包括編譯器名稱和版本或Boost版本。如果使用相同的編譯器構建Boost的多個變體,此選項將非常有用。system 二進制名稱不包括Boost版本號或編譯器的名稱和版本號。 Boost頭直接安裝到
默認值在Windows上為“versioned”,在Unix上為“system”。 |
--buildid=ID | 將指定的ID添加到構建的庫的名稱。 默認是不添加任何東西。 |
--python-buildid=ID | 將指定的ID添加到依賴於Python的構建庫的名稱。 默認是不添加任何東西。 但指定了--buildid,還會添加此ID。 |
--help | 顯示相關選項說明信息 |
--with-<library> |
構建並安裝指定的
如果使用此選項,將只構建使用此選項指定的庫。 |
--without-<library> |
不要構建和安裝指定的
默認是構建所有的。 |
特性:
選項 | 含義 |
---|---|
toolset=toolset | 指示要構建的平台工具集。(VS2015就是msvc-14.0) |
variant=debug/release |
選擇構建variant |
link=static/shared |
構建靜態或共享庫 |
threading=single/multi |
構建單線程或多線程二進制程序庫 |
runtime-link=static/shared |
靜態還是動態鏈接到C和C ++運行時庫 |
address-model=32/64 |
尋址模式(生成32位還是64位庫) |
注意:表格中的/ 原本是| 。 |