小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

boost 編譯選項

 oskycar 2012-12-25

一、下載編譯所需類庫:
    1、下載 Boost 庫和編譯工具 JAM。
       http://www./users/download/
       boost_1_45_0.7z、boost-jam-3.1.18.zip。
       將 boost_1_45_0.7z 解壓到 D:\Boost,將 boost-jam-3.1.18.zip 解壓到 D:\Boost\TempLib\JAM。
       開始-->所有程序-->Microsoft Visual Studio 2010-->Visual Studio 工具-->Visual Studio 2010 命令提示。
       命令:cd D:\Boost\TempLib\JAM
       命令:build.bat
       將生成的 bjam.exe 復(fù)制到 D:\Boost 中。

   2、下載 Regex 所需的 Unicode 支持類庫 ICU。
      http://site./download
      icu4c-4_6-src.zip。
      將 icu4c-4_6-src.zip 解壓縮到 D:\Boost\TempLib\ICU。
      打開 source\allinone\allinone.sln,生成 Release 版本,將 include 和 release 目錄中的庫文件復(fù)制到 D:\Boost\TempLib\ICU\Include 和 D:\Boost\TempLib\ICU\Lib 中。
      將編譯出來的 bin 路徑加入到系統(tǒng) path 中,再打開 allinone.sln,分別將 cintltst、intltest、iotest 三個測試項目設(shè)置為啟動項,運行測試。

   3、下載 Graph 所需的 Xml 處理類庫 Expat。
      http:///projects/expat/
      expat-2.0.1.tar.gz。
      將 expat-2.0.1.tar.gz 解壓到 D:\Boost\TempLib\Expat。

   4、下載 MPI 所需的 MPI 類庫 Microsoft Cluster Pack SDK。
      http://www.microsoft.com/downloads/en/details.aspx?DisplayLang=en&FamilyID=d8462378-2f68-409d-9cb3-02312bc23bfd
      http://www.microsoft.com/downloads/en/details.aspx?FamilyID=48C892D9-2425-4C6B-BD9A-2650BE395E8F
      sdk_x86.msi、CCPSP1x86.msp。
      默認安裝到 C:\Program Files\Microsoft Compute Cluster Pack 文件夾。

   5、下載 bzip 庫。
      http://www./downloads.html
      bzip2-1.0.6.tar.gz。
      將 bzip2-1.0.6.tar.gz 解壓到 D:\Boost\TempLib\bzip。

   6、下載 zlib 庫。
      http://www./
      zlib-1.2.5.tar.gz。
      將 zlib-1.2.5.tar.gz 解壓到 D:\Boost\TempLib\zlib。

   7、下載 python 庫。
      http://www./
      python-2.5.4.msi
      將 python-2.5.4.msi 安裝到 D:\Python。
//address-model=64 就是X64
二、完整編譯 Boost 庫:
Visual Studio 2010 命令提示
命令:cd D:\Boost

設(shè)置環(huán)境:
命令:set BZIP2_SOURCE="D:\Boost\TempLib\bzip"
命令:set ZLIB_SOURCE="D:\Boost\TempLib\zlib"
命令:set ICU_PATH="D:\Boost\TempLib\ICU"

建立bjam:
命令:bootstrap

編譯boost:
編譯 DLL 版本
命令:.\bjambjam --toolset=msvc --stagedir=./lib_x86 --builddir=./ address-model=32 link=shared runtime-link=shared threading=multi stage debug release
編譯 LIB 版本
命令:.\bjambjam --toolset=msvc --stagedir=./lib_x86 --builddir=./ address-model=32 link=static runtime-link=shared threading=multi stage debug release

編譯好的文件放置在boost根目錄的lib_x86\lib目錄下,在boost根目錄下的bin.v2目錄是中間文件,編譯后刪除即可。
如果需要去掉編譯過程中的一些warning,可以在tools\build\v2的user-config.jam文件中加入以下這一行:
using msvc : 10.0 : : <compileflags>/wd4819 <compileflags>/D_CRT_SECURE_NO_DEPRECATE <compileflags>/D_SCL_SECURE_NO_DEPRECATE <compileflags>/D_SECURE_SCL=0 ;

等待,直至編譯完成。

已成功方法:
命令:bootstrap
命令:.\bjam stage --toolset=msvc-10.0 link=static runtime-link=shared threading=multi debug release
命令:.\bjam stage --toolset=msvc-10.0 link=static runtime-link=static threading=multi debug release

其他參考語句:
命令:bootstrap
命令:bjam --without-python --toolset=msvc-10.0 --build-type=complete --prefix="d:\boost" stage


三、設(shè)定vs2010環(huán)境。(注:在2010環(huán)境下這步,在項目-->右鍵屬性-->VC++ Directories 中去填寫對應(yīng)路徑 ) 
  Tools -> Options -> Projects and Solutions -> VC++ Directories 
  在Library files加上d:\boost\boost_1_43_0\lib 
  在Incl e files加上d:\boost\boost_1_43_0\inclued\boost_1_43_0


測試:
1、Head-only庫測試:
程序:
#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) << " " );   
}   
設(shè)置:
右鍵單擊解決方案名->屬性,在彈出的窗口中 配置屬性->C/C++->常規(guī)->附加包含目錄,把解壓boost的根目錄包含進去。 可能隨安裝時的參數(shù)以及程序的不同,路徑的設(shè)置有些不同,但要保證VS能找到文件即可。 
運行:
運行后,在控制臺輸入
1 2 3 <Enter> 
應(yīng)輸出
3 6 9

2、鏈接lib文件:
程序:
#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))   
            for(int i = 0; i < 3; ++i)   
                std::cout << matches[i] << std::endl;   
    }   
}   
設(shè)置:
右鍵單擊解決方案名->屬性,在彈出的窗口中 配置屬性->C/C++->常規(guī)->附加包含目錄,把解壓boost的根目錄包含進去。 配置屬性->鏈接器->常規(guī)->附加庫目錄,把編譯好的boost庫所在目錄包含進去。 可能隨安裝時的參數(shù)以及程序的不同,路徑的設(shè)置有些不同,但要保證VS能找到文件即可。 
運行:
運行后,在控制臺分別輸入
Subject:My email <Enter>   
Subject:Re: My email <Enter>   
My email <Enter>
應(yīng)分別輸出
My email   
My email   
   


其他編譯參數(shù)說明:
stage/install: stage表示只生成庫(dll和lib),install還會生成包含頭文件的include目錄。本人推薦使用stage,因為install生成的這個include目錄實際就是boost安裝包解壓縮后的boost目錄(E:\SDK\boost_1_39_0\boost,只比include目錄多幾個非hpp文件,都很?。?,所以可以直接使用,而且不同的IDE都可以使用同一套頭文件,這樣既節(jié)省編譯時間,也節(jié)省硬盤空間。


toolset: 指定編譯器,可選的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。


without/with: 選擇不編譯/編譯哪些庫。因為python、mpi等庫我都用不著,所以排除之。另外,wave、graph、math、regex、test、program_options、serialization、signals這幾個庫編出的靜態(tài)lib都非常大,所以不需要的也可以without掉。這可以根據(jù)各人需要選擇,默認是全部編譯。但是需要注意,如果選擇編譯python的話,是需要python語言支持的,應(yīng)該到python官方主頁http://www./下載安裝。


stagedir/prefix: stage時使用stagedir,install時使用prefix,表示編譯生成文件的路徑。

build-dir: 編譯生成的中間文件的路徑。這個本人這里沒用到,默認就在根目錄(E:\SDK\boost_1_39_0)下,目錄名為bin.v2,等編譯完成后可將這個目錄全部刪除(沒用了),所以不需要去設(shè)置。


link: 生成動態(tài)鏈接庫/靜態(tài)鏈接庫。生成動態(tài)鏈接庫需使用shared方式,生成靜態(tài)鏈接庫需使用static方式。一般boost庫可能都是以static方式編譯,因為最終發(fā)布程序帶著boost的dll感覺會比較累贅。


runtime-link: 動態(tài)/靜態(tài)鏈接C/C++運行時庫。同樣有shared和static兩種方式,這樣runtime-link和link一共可以產(chǎn)生4種組合方式,各人可以根據(jù)自己的需要選擇編譯。一般link只選static的話,只需要編譯2種組合即可,即link=static runtime-link=shared和link=static runtime-link=static。


threading: 單/多線程編譯。一般都寫多線程程序,當然要指定multi方式了;如果需要編寫單線程程序,那么還需要編譯單線程庫,可以使用single方式。


debug/release: 編譯debug/release版本。一般都是程序的debug版本對應(yīng)庫的debug版本,所以兩個都編譯。

 

另:Boost中bjam的參數(shù)使用方法:

1.完全編譯安裝: 
bjam --toolset=msvc install 
完成后會生成一個bin.v2編譯時的臨時目錄,手動刪除。生成另一個目錄C:\boost,里面為所有的頭文件和庫文件。頭文件目錄為boost_1_34_1\boost目錄復(fù)制過去的。

2.只編譯相應(yīng)的庫文件 
bjam --toolset=msvc stage 
完成后同樣會生成bin.v2臨時目錄。另一個目錄為stage文件,里面有對應(yīng)的庫文件。

3.查看需要編譯才能使用的庫列表 
bjam --show-libraries

4.編譯特定的庫,如只編譯regex 
bjam --toolset=msvc --with-regex stage 
生成的庫文件在stage目錄中。

5.不編譯某個庫,如不編譯regex 
bjam --toolset=msvc --without-regex stage 
生成的庫文件在stage目錄中。

6.編譯特定的庫,如只編譯regex,生成debug,多線程

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多