• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            colorful

            zc qq:1337220912

             

            Boost 1.46.1編譯成VS2008版本

            今天Boost.org上下載了Boost的最新版本1.46.1,然后編譯成VS2008的可用版本,總耗時大概20分鐘左右。步驟如下:

            1. 至Boost.org上下載Window下的Boost最新版 http://sourceforge.net/projects/boost/files/boost/1.46.1/ PS: 我下載的后綴為.7z的壓縮版本。

            2. 解壓至本地硬盤,我解壓在D:/boost_1_46_1下。

            3. 編譯得到bjam.exe. 進入VS2008的Command Prompt,(一定要是這個,不能是cmd)轉目錄至D:/boost_1_46_1/tools/build/v2,然后執行批處理bootstrap.bat后,得到bjam.exe, 將其拷至Boost根目錄下(即:D:/boost_1_46_1)

            4. 利用bjam.exe編譯得到Boost的lib文件。將VS2008的Command Prompt的執行目錄轉至D:/boost_1_46_1,然后輸入:bjam --toolset=msvc-9.0 --build-type=complete stage 后開始編譯,大概20分鐘后,編譯完成。生成的庫文件位于D:/boost_1_46_1/stage/lib下。

            5. 在VS2008中,設置include路徑和lib路徑后,即可使用Boost最新版。


            注:如果第4步僅輸入bjam或直接點擊bjam.exe執行,則生成的庫文件為VS2010的庫文件(形如:boost_filesystem-vc100-mt-1_46_1.lib).



            /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            VS2008下直接安裝使用Boost庫1.46.1版本

            分類: 1.1 C/C++ 2711人閱讀 評論(10) 收藏 舉報

                  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.解壓到硬盤上,其目錄構造為

            boost_1_46_1/ ................................boost根目錄 
               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 <boost/lambda/lambda.hpp> 
            #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 <boost/regex.hpp> 
            #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,內容如下:

            To: George Shmidlap 
            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/

            posted on 2012-03-02 21:01 多彩人生 閱讀(1830) 評論(0)  編輯 收藏 引用

            導航

            統計

            常用鏈接

            留言簿(3)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            国产福利电影一区二区三区久久久久成人精品综合 | 久久夜色撩人精品国产小说| 日本久久久精品中文字幕| 精品久久久久久久久久久久久久久 | 色狠狠久久AV五月综合| 国产99精品久久| 国产高潮久久免费观看| 久久午夜夜伦鲁鲁片免费无码影视 | 久久香蕉国产线看观看99| 久久久无码精品亚洲日韩软件| 亚洲精品无码成人片久久| 久久精品国产亚洲av麻豆色欲| 欧美久久综合九色综合| 中文字幕日本人妻久久久免费 | 久久亚洲AV永久无码精品| 亚洲乱码中文字幕久久孕妇黑人| 国产精品无码久久综合网| 久久精品国产日本波多野结衣| 久久国产影院| 人妻精品久久久久中文字幕69| 四虎国产精品免费久久| 国产亚洲精品自在久久| 超级97碰碰碰碰久久久久最新| 午夜精品久久久久久影视777| 99久久99久久精品国产| 国产V亚洲V天堂无码久久久| 97久久国产露脸精品国产| 久久久国产精华液| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 国产精品综合久久第一页| 亚洲国产另类久久久精品| 国内精品久久久久影院亚洲| 国产精品内射久久久久欢欢| 精品久久久噜噜噜久久久| 国产精品久久久亚洲| 久久无码高潮喷水| 2021国产精品久久精品| 精品综合久久久久久97| 奇米综合四色77777久久| 日韩精品久久久久久久电影蜜臀| 久久精品无码专区免费东京热|