VS2008下直接安裝使用Boost庫1.46.1版本
轉自:http://blog.csdn.net/akof1314/article/details/6292980
Boost庫是一個可移植、提供原始碼的C++庫,作為標準庫的後備,是C++標準化程式的發動機之一。 Boost庫由C++標準委員會庫工作組成員發起,其中有些內容有望成為下一代C++標準庫內容。在C++社群中影響甚大,是不折不扣的“準”標準庫。 Boost由於其對跨平臺的強調,對標準C++的強調,與編寫平臺無關。大部分boost庫功能的使用只需包括相應標頭檔案即可,少數(如正規表示式庫,檔案系統庫等)需要連結庫。但Boost中也有很多是實驗性質的東西,在實際的開發中實用需要謹慎。boost 在一些播放軟體和音效中指增強,比如Bass Boost,低音增強。1.下載最新版的BOOST庫,當前最新版為1.46.1(2011-3-12釋出),下載連結地址:http://sourceforge.net/projects/boost/files/boost/1.46.1/
2.解壓到硬碟上,其目錄構造為
index.htm ..................... www.boost.org 網站首頁
boost/ ..............................所有的Boost標頭檔案
lib/ .................................預編譯的二進位制庫
libs/ ......................庫的Tests, .cpps, docs等等
index.html .............................庫文件開始處
algorithm/
any/
array/
…more libraries…
status/ .........................Boost-wide test suite
tools/ ...........實用工具, e.g. bjam, quickbook, bcp
more/ .......................................一些文件
doc/ ...............................所有庫文件的一部分
3.開啟根目錄下的index.html,在上面的“Getting Started”有介紹怎麼開始使用Boost的,大部分的Boost庫只需要包含標頭檔案即可,少部分需要編譯連結。以下是必須編譯的Boost庫:
* Boost.Filesystem
* Boost.GraphParallel
* Boost.IOStreams
* Boost.MPI
* Boost.ProgramOptions
* Boost.Python
* Boost.Regex
* Boost.Serialization
* Boost.Signals
* Boost.System
* Boost.Thread
* Boost.Wave
另外,一些庫可以是可選擇編譯的:
* Boost.DateTime (只有當你需要使用它的to_string/from_string或者serialization features, or if you're targeting Visual C++ 6.x or Borland.
* Boost.Graph (只有當你傾向解析 GraphViz 檔案)
* Boost.Math (the TR1 and C99 cmath functions)
* Boost.Random (當你需要使用random_device的時候)
* Boost.Test (can be used in “header-only” or “separately compiled” mode)
4.下面開始一個無需編譯Boost,直接使用標頭檔案的示例:
①開啟Visual Studio 2008,新建Visual C++工程,基於Win32控制檯程式,工程名為example,確定之後,在彈出的對話方塊中“應用程式設定”打鉤上“控制檯應用程式”和“空專案”,點“完成”;
②在“解決方案資源管理器”右擊example工程,選擇“屬性”→“C/C++”→“常規”→“附加包含目錄”,輸入剛才解壓Boost的目錄,比如“F:/MyCode/BOOST/boost_1_46_1”,如下圖所示:
③右擊example工程下的“原始檔”→“新增”→“新建項”→左邊的“程式碼”→選中右邊的“C++檔案(.cpp)”,檔名為example,點“新增”,輸入以下程式碼:
#include <iostream>
#include <iterator>
#include <algorithm>
int main()
{
using namespace boost::lambda;
typedef std::istream_iterator<int> in;
std::for_each(
in(std::cin), in(), std::cout << (_1 * 3) << " " );
}
④點選選單欄上“生成”→“生成解決方案”,正常的話會編譯通過,按F5可看結果,結果如下圖所示:
這個example程式碼的功能是從標準輸入中讀取一系列整型,然後使用boost::lambda使之每個數乘以3,再把結果寫進標準輸出。
5.若是需要用到那些必須得編譯連結的庫,那麼就得組建編譯Boost庫了。官方文件上介紹說可以使用安裝版,或者自己編譯原始碼,特別介紹推薦在Microsoft Visual Studio開發環境下使用安裝版,因為安裝版可以直接下載,並且帶有預編譯好的庫,節省自己編譯原始碼的麻煩。在這裡,因為我使用的是Visual Studio 2008,故欲試試使用安裝版。安裝版是boostpro網站製作的,安裝版不是跟官方的Boost同步的,會比較晚一些時間才會釋出出來。當前最新版BoostPro
1.46.1 Installer (197K .exe),下載地址:http://www.boostpro.com/download/
5.1執行安裝版,一路“I Agree”,注意會連線網路,必須放行。之後會彈出選擇下載Boost C++庫1.46.1的映象地址,預設就好,繼續“Next”,彈出選擇預設的編譯型別,在左側選擇“Visual C++ 9”,在右側選擇型別,我們一般所用到的執行庫比較多使用多執行緒,可以在上面的example工程看屬性,如下圖所示:
為此,我們只需選擇上面四個選項,再根據動態連結和靜態連結需求進行選擇,如下圖所示:
接下去就是選擇元件安裝,沒啥問題就預設了,下一步選擇路徑,接著就開始下載了,如下圖所示:
因為是連線網路下載,所以得一段比較長的時間,下載完之後就會自動安裝好,在設定的目錄下就有個lib資料夾,裡面就是編譯好的庫。
5.2現在讓我們測試一下那些需要連結才能使用的庫:
①開啟上面建立的example工程,將其cpp檔案程式碼改為如下:
#include <iostream>
#include <string>
int main()
{
std::string line;
boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
while (std::cin)
{
std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;
}
}
此時,若是生成解決方案的話,就會提示 fatal error LNK1104: 無法開啟檔案“libboost_regex-vc90-mt-gd-1_46_1.lib”
②右鍵example解決方案,選擇“屬性”→“配置屬性”→“連結器”→“附加庫目錄”,新增安裝版下載好的lib庫資料夾路徑,如下圖所示:
③在選單欄“生成”下拉選擇“生成解決方案”,無警告無錯誤通過。將下面文字儲存成文字文件,檔名為jayne.txt,內容如下:
From: Rita Marlowe
Subject: Will Success Spoil Rock Hunter?
---
See subject.
然後儲存到工程目錄的Debug資料夾下。接著Win+R輸入CMD進入控制檯,cd 轉到此Debug目錄下,輸入example < jayne.txt命令,如下圖所示:
回車之後,文字文件裡面Subject主題的內容就會被正則匹配出來,如下圖所示:
也可以不進入CMD控制檯,直接在example解決方案右鍵“屬性”→“除錯”→“命令引數”,輸入< jayne.txt ,按“確定”,直接Ctrl+F5執行程式,結果如下圖所示:
6.最後總結,Visual Studio環境的話可以直接下載安裝版的,省去麻煩的編譯過程,但是不帶幫助文件,這點得自己再從官方網站下載了,目前有漢化Boost文件,還有一些不錯的中文站點,列舉如下:
boost文件漢化:http://code.google.com/p/boost-doc-zh/
線上漢化版文件:http://www.cppprog.com/boost_doc/
相關文章
- boost安裝筆記——vs2008筆記
- Ubuntu下安裝C++ boost庫UbuntuC++
- boost的安裝、檢視與解除安裝(某動態庫要求的boost版本不適配怎麼辦?)
- ubuntu下安裝boost環境Ubuntu
- Linux下編譯安裝BOOSTLinux編譯
- CGAL BOOST 以及對如何安裝庫的思考
- 實戰準標準庫Boost —— (1)配置Boost的VS2008開發環境開發環境
- Linux安裝boost、libevent、zlib、OpenSSL庫Linux
- VS2010 安裝 Boost 庫 1.54
- 在Qt中使用boost庫QT
- Anaconda管理多Python版本下安裝庫檔案Python
- 伺服器上的下Jdon不能直接安裝伺服器
- Centos下安裝git高版本2.1.2CentOSGit
- Ubuntu下 解除安裝protobuf並安裝指定版本的protobufUbuntu
- linux下使用boost.python呼叫c++動態庫LinuxPythonC++
- Ubuntu下Mysql資料庫的安裝和使用UbuntuMySql資料庫
- 使用免安裝版本在windows上手動安裝PostgreSQLWindowsSQL
- VS2008下mysql資料庫配置(使用c-api)MySql資料庫API
- boost------asio庫的使用1(Boost程式庫完全開發指南)讀書筆記筆記
- Windows下Wireshark安裝版本選擇方式Windows
- CentOS下安裝社群版本MySQL5.5.8CentOSMySql
- SOLARIS下的Package安裝(包括直接網上安裝,類似linux的YUM)PackageLinux
- Python庫檢查是否正確安裝並安裝所需版本Python
- Ubuntu 下安裝Python庫UbuntuPython
- 安裝VS2008無法更改安裝路徑解決方法
- CentOS 下多版本 PHP 的安裝與配置CentOSPHP
- 最新Turbo Boost Switcher Pro補丁破解版 Turbo Boost Switcher Pro破解安裝教程
- zookeeper下載安裝使用
- SVN下載安裝使用
- 安裝caffe時候找不到boost怎麼辦?(boost的引用問題make can‘t find Boost‘s include files)
- 多 PHP 版本共存的環境下安裝 Swoole 到指定版本PHP
- win10 免安裝版本的MySQL的下載安裝和配置Win10MySql
- VS2008編譯GDAL 1.8.1(安裝GDAL)編譯
- sqlserver資料庫下載安裝SQLServer資料庫
- Python多版本pip安裝庫的問題Python
- windows下安裝各個版本memcache擴充套件Windows套件
- docker for windows下載和安裝-Windows10版本DockerWindows
- Linux下安裝任意版本的tensorflow命令Linux