<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    VS2010 編譯安裝boost庫

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    實踐是最好的辦法。。學習C++,想試試線程,然后打算用boost庫,結果boost庫編譯差點嚇到我。。沒看到比較完整的安裝教程。。一直耽擱。今天動手。完成了。方法記錄如下:
    1.下載boost
    從boost官網( http://www.boost.org )上下載最新的boost版本,現在最新是1.49版本,解壓到自定義目錄(我解壓到了D:/program files,最終的目錄結構是D:\Program Files\boost_1_49_0)

    2.編譯安裝

    在D:\Program Files\boost_1_49_0的目錄下,有一個bootstrap.bat文件,直接雙擊運行。就會在同目錄生成b2.exe;bjam.exe兩個文件。

    3.設定編譯環境
    修改user-config.jam (D:\Program Files\boost_1_49_0\tools\build\v2\user-config.jam) 的MSVC configuration
    # MSVC configuration
    # Configure msvc (default version, searched for in standard locations and PATH).
    # using msvc ;
    在上面這段的下面直接添加如下的文字。

      1 using msvc:10.0::/wd4819/D_CRT_SECURE_NO_DEPRECATE/D_SCL_SECURE_NO_DEPRECATE/D_SECURE_SCL=0;

    保存關閉。

    4.開始編譯
    點擊開始->所有程序->“Microsoft Visual Studio 2010”,指向“Visual Studio tools(工具)”,然后單擊“Visual Studio 2010 command prompt(命令提示)” 使用cd切換到D:\Program Files\boost_1_49_0目錄。這個就不說了
    然后輸入如下的代碼:

      1 2 3 b2 toolset=msvc-10.0architecture=x86 instruction-set=i686 address-model=32link=static variant=debug,release threading=multi runtime-link=shared--without-python--without-mpi --without-wave--without-graph--without-math--without-serialization stage

     

    解釋一下命令的意思:
    1.toolset:表示編譯器工具,我安裝的是VS2010,所以是msvc-10(如果你是VS2005,可以使用msvc-8.0 VS2008是msvc-9.0)
    2.architecture:表示架構,也就是你的CPU架構,x86,x64,因為我安裝的是win7 32位,所以使用了x86的架構
    3.instruction-set:表示指令集,依然是8086指令集
    4.address-model:表示地址長度為32位
    5.link:表示生成動態/靜態鏈接庫,動態鏈接庫是shared,靜態鏈接庫是static,一般都會編譯成靜態庫,因為給出程序的時候打包boost的庫會非常龐大
    6.variant:表示生成的Debug或者release版本,一般情況下會兩種版本都會編譯出來的
    7.threading:表示單/多線程編譯,一般我們的程序都會用到多線程,所以選擇了multi
    8.runtime-link:表示動態/靜態鏈接C/C++運行時庫(C/C++ Runtime),我們選擇了動態鏈接
    9.without/with:表示不需要編譯/需要編譯哪些庫,一些自己不用的庫可以無需編譯
    10.stage/install:stage表示只生成庫文件(DLL和Lib),install還會生成包含頭文件的include目錄,推薦使用stage,因為boost_1_49\boost中就是boost庫完整的頭文件,所以無需再拷貝一份出來。編譯出來的庫會放在stage文件夾中
    這樣一份完整的boost庫就生成了,剩下就是直接使用到項目中了。

    其實編譯的具體命令都是可以自己寫的。如果你需要編譯所有。只需要使用下面的這行代碼
    b2 –toolset=msvc-10.0 –build-type=complete
    就可以了。

    不出問題的話。就開始編譯了。。登個半個多小時吧。就會完成了。
    5.設置vs
    打開vs,新建一個工程。然后工程屬性。配置屬性->C/C++ ,附加包含目錄
    填上
    D:\Program Files\boost_1_49_0;%(AdditionalIncludeDirectories)
    這個是最終的結果,你也可以手動添加

    在左側選擇鏈接器->附加庫目錄,填上
    D:\Program Files\boost_1_49_0\stage\lib;%(AdditionalLibraryDirectories)
    就可以了。

    6.測試
    在你新建的工程里輸入如下的代碼。運行成功就說明可以了

      1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #include <boost/thread/thread.hpp> #include <iostream>   voidhello() {         std::cout<<         "Hello world, I'm a thread!"         <<std::endl; }   intmain(intargc,char*argv[]) {         boost::threadthrd(&hello);         thrd.join();         return0; }

     

    參考:
    http://www.cppfans.org/1317.html
    http://www.cnblogs.com/ComputerG/archive/2011/03/10/1979730.html
    http://www.cppblog.com/shaker/archive/2011/11/30/33583.html

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全