Windows下 VS2015编译boost1.62
VS2015編譯boost1.62
Boost庫(kù)是一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開(kāi)發(fā)引擎之一。 Boost庫(kù)由C++標(biāo)準(zhǔn)委員會(huì)庫(kù)工作組成員發(fā)起,其中有些內(nèi)容有望成為下一代C++標(biāo)準(zhǔn)庫(kù)內(nèi)容。在C++社區(qū)中影響甚大,是不折不扣的“準(zhǔn)”標(biāo)準(zhǔn)庫(kù)。Boost由于其對(duì)跨平臺(tái)的強(qiáng)調(diào),對(duì)標(biāo)準(zhǔn)C++的強(qiáng)調(diào),與編寫(xiě)平臺(tái)無(wú)關(guān)。大部分boost庫(kù)功能的使用只需包括相應(yīng)頭文件即可,少數(shù)(如正則表達(dá)式庫(kù),文件系統(tǒng)庫(kù)等)需要鏈接庫(kù)。但Boost中也有很多是實(shí)驗(yàn)性質(zhì)的東西,在實(shí)際的開(kāi)發(fā)中實(shí)用需要謹(jǐn)慎。
在VS下,boost的頭文件中會(huì)包含#pragma comment(lib,xxx)的語(yǔ)句,所以可以不用在項(xiàng)目中添加相關(guān)的庫(kù)指定。
boost中大部分庫(kù)是僅有頭文件,不用編譯成庫(kù)的。
編譯好的庫(kù)可以到這里下載
鏈接:http://share.weiyun.com/712e3d95bb73d7378a8c34d3518d12f3 (密碼:2LNF)
1、源碼
源碼的下載可以直接去http://www.boost.org/網(wǎng)站下載。
我下載的地址是http://jaist.dl.sourceforge.net/project/boost/boost/1.62.0/boost_1_62_0.7z
2、生成編譯工具
boost庫(kù)自帶了bootstrap腳本來(lái)生成一個(gè)構(gòu)建工具b2。打開(kāi)命令行直接執(zhí)行即可。
D:\development_library\boost\boost_1_62_0>bootstrap.bat --help Building Boost.Build engineFailed to build Boost.Build engine. Please consult bootstrap.log for further diagnostics.You can try to obtain a prebuilt binary fromhttp://sf.net/project/showfiles.php?group_id=7586&package_id=72941Also, you can file an issue at http://svn.boost.org Please attach bootstrap.log in that case.這里出現(xiàn)了Failed to build Boost.Build engine.錯(cuò)誤,解決辦法很簡(jiǎn)單,使用VS 2015 命令行提示符來(lái)執(zhí)行即可。
3、進(jìn)行編譯
b2工具的使用如下
b2 [options] [properties] [install|stage] #options 選項(xiàng) #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目標(biāo)和相關(guān)選項(xiàng):
| install | 安裝頭文件和編譯后的庫(kù)文件到配置的位置(如下)。 |
| --prefix=<PREFIX> | 平臺(tái)架構(gòu)無(wú)關(guān)的文件(include/doc等)的安裝位置 win32默認(rèn)在C:\Boost Unix/Linux默認(rèn)在/usr/local |
| --exec-prefix=<EPREFIX> | 安裝平臺(tái)架構(gòu)相關(guān)的文件在這里 默認(rèn)與<PREFIX>相同 |
| --libdir=<DIR> | 庫(kù)文件安裝目錄 默認(rèn)<EPREFIX>/lib |
| --includedir=<HDRDIR> | 頭文件安裝目錄 默認(rèn)<PREFIX>/include |
| stage | 僅構(gòu)建和安裝編譯的庫(kù)文件到stage目錄 |
| --stagedir=<STAGEDIR> | 安裝編譯的庫(kù)文件目錄 默認(rèn)./stage |
其他選項(xiàng):
| --build-type=<type> | 構(gòu)建預(yù)定義的配置。 注意:構(gòu)建哪些variants取決于各個(gè)庫(kù)的支持。 minimal(默認(rèn)) 構(gòu)建一個(gè)最小集(即只構(gòu)建release版本。 在Windows上,構(gòu)建debug和release模式下使用共享運(yùn)行時(shí)的靜態(tài)多線程庫(kù)。 在Linux上,這些是release模式下的靜態(tài)和共享多線程庫(kù)) complete構(gòu)建debug和release版本 |
| --build-dir=DIR | 構(gòu)建指定目錄(默認(rèn)中間文件會(huì)在源碼目錄下) 推薦!# |
| --show-libraries | 顯示構(gòu)建的Boost庫(kù)列表在安裝步驟,然后退出 |
| --layout=<layout> | 確定是否選擇庫(kù)名和頭文件位置,一邊可以在同一系統(tǒng)上使用多個(gè)版本的Boost庫(kù)或多個(gè)編譯器編譯的。 versioned版本名,會(huì)影響庫(kù)文件名和頭文件路徑<HDRDIR> taggedboost二進(jìn)制文件的名稱(chēng)包括編譯的構(gòu)建屬性(如variant和threading),但不包括編譯器名稱(chēng)和版本或Boost版本。如果使用相同的編譯器構(gòu)建Boost的多個(gè)變體,此選項(xiàng)將非常有用。 system二進(jìn)制名稱(chēng)不包括Boost版本號(hào)或編譯器的名稱(chēng)和版本號(hào)。 Boost頭直接安裝到中。此選項(xiàng)適用于構(gòu)建分發(fā)軟件包的系統(tǒng)集成商。 默認(rèn)值在Windows上為“versioned”,在Unix上為“system”。 |
| --buildid=ID | 將指定的ID添加到構(gòu)建的庫(kù)的名稱(chēng)。 默認(rèn)是不添加任何東西。 |
| --python-buildid=ID | 將指定的ID添加到依賴(lài)于Python的構(gòu)建庫(kù)的名稱(chēng)。 默認(rèn)是不添加任何東西。 但指定了--buildid,還會(huì)添加此ID。 |
| --help | 顯示相關(guān)選項(xiàng)說(shuō)明信息 |
| --with-<library> | 構(gòu)建并安裝指定的。 如果使用此選項(xiàng),將只構(gòu)建使用此選項(xiàng)指定的庫(kù)。 |
| --without-<library> | 不要構(gòu)建和安裝指定的。 默認(rèn)是構(gòu)建所有的。 |
特性:
| toolset=toolset | 指示要構(gòu)建的平臺(tái)工具集。(VS2015就是msvc-14.0) |
| variant=debug/release | 選擇構(gòu)建variant |
| link=static/shared | 構(gòu)建靜態(tài)或共享庫(kù) |
| threading=single/multi | 構(gòu)建單線程或多線程二進(jìn)制程序庫(kù) |
| runtime-link=static/shared | 靜態(tài)還是動(dòng)態(tài)鏈接到C和C ++運(yùn)行時(shí)庫(kù) |
| address-model=32/64 | 尋址模式(生成32位還是64位庫(kù)) |
注意:表格中的/原本是|。
轉(zhuǎn)載于:https://www.cnblogs.com/oloroso/p/6050596.html
總結(jié)
以上是生活随笔為你收集整理的Windows下 VS2015编译boost1.62的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Wikioi 1222 信与信封问题(二
- 下一篇: 求导的训练