日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VS2008编译boost库

發布時間:2023/12/2 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VS2008编译boost库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、下載
首先從boost官方主頁http://www.boost.org/下載最新版boost安裝包,我用的版本是boost.1.49.0
二、新建文件夾

? ?如果是使用下載的安裝包,那么請將boost安裝包解壓至本地新建的目錄,如:F:\boost

三、編譯

(1)從vs2008的工具菜單進入命令提示窗口(單擊“開始”按鈕,指向“所有程序”,指向“Microsoft Visual Studio 2008”,指向“Visual Studio tools(工具)”,然后單擊“Visual Studio 2008 command prompt(命令提示)”??
(2)cd到F:\boost\boost_1_49_0下執行bootstrap.bat,然后,會在F:\boost\boost_1_49_0\下生成bjam.exe
??

(3)使用bjam命令編譯,如下:

bjam stage --toolset=msvc-9.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-python --without-serialization --without-wave --stagedir="F:\boost\boost_1_49_0\bin\vc9" link=static runtime-link=shared runtime-link=static threading=multi debug release


下面詳細解釋一下每個參數的含義:
stage/install:stage表示只生成庫(dll和lib),install還會生成包含頭文件的include目錄。本人推薦使用stage,因為install生成的這個include目錄實際就是boost安裝包解壓縮后的boost目錄(E:\SDK\boost\boost,只比include目錄多幾個非hpp文件,都很小),所以可以直接使用,而且不同的IDE都可以使用同一套頭文件,這樣既節省編譯時間,也節省硬盤空間。
toolset:指定編譯器,可選的如borland、gcc、msvc(VC6)、msvc-9.0(VS2008)等。
without/with:選擇不編譯/編譯哪些庫。因為python、mpi等庫我都用不著,所以排除之。還有wave、graph、math、regex、test、program_options、serialization、signals這幾個庫編出的靜態lib都非常大,所以不需要的也可以without掉。這可以根據各人需要進行選擇,默認是全部編譯。但是需要注意,如果選擇編譯python的話,是需要python語言支持的,應該到python官方主頁http://www.python.org/下載安裝。查看boost包含庫的命令是bjam --show-libraries。
stagedir/prefix:stage時使用stagedir,install時使用prefix,表示編譯生成文件的路徑。推薦給不同的IDE指定不同的目錄,如VS2008對應的是F:\boost\boost_1_49_0\bin\vc9,VC6對應的是F:\boost\boost_1_49_0\bin\vc6,否則都生成到一個目錄下面,難以管理。如果使用了install參數,那么還將生成頭文件目錄,vc9對應的就是F:\boost\boost_1_49_0\bin\vc9\include\boost-1_46\boost,vc6類似(光這路徑都這樣累贅,還是使用stage好)。
build-dir:編譯生成的中間文件的路徑。這個本人這里沒用到,默認就在根目錄(F:\boost\boost_1_49_0)下,目錄名為bin.v2,等編譯完成后可將這個目錄全部刪除(沒用了),所以不需要去設置。
link:生成動態鏈接庫/靜態鏈接庫。生成動態鏈接庫需使用shared方式,生成靜態鏈接庫需使用static方式。一般boost庫可能都是以static方式編譯,因為最終發布程序帶著boost的dll感覺會比較累贅。
runtime-link:動態/靜態鏈接C/C++運行時庫。同樣有shared和static兩種方式,這樣runtime-link和link一共可以產生4種組合方式,各人可以根據自己的需要選擇編譯。一般link只選static的話,只需要編譯2種組合即可,即link=static runtime-link=shared和link=static runtime-link=static,本人一般就編這兩種組合。
threading:單/多線程編譯。一般都寫多線程程序,當然要指定multi方式了;如果需要編寫單線程程序,那么還需要編譯單線程庫,可以使用single方式。
debug/release:編譯debug/release版本。一般都是程序的debug版本對應庫的debug版本,所以兩個都編譯。


四、配置vs2008

? 打開tools -->options -->projects and solutions --> vc ++ directories

include目錄:F:\boost\boost_1_49_0
library目錄: ?F:\boost\boost_1_49_0\bin\vc9\lib

五、測試

[cpp]?view plaincopy
  • #include?<boost/thread/thread.hpp>???
  • #include?<iostream>???
  • ??
  • using?namespace?std;??
  • ??
  • //?method?1??
  • void?hello()???
  • {???
  • ????cout?<<???
  • ????????"Hello?world,?I\'m?a?thread!"???
  • ????????<<?endl;???
  • }???
  • ??
  • int?main(int?argc,?char*?argv[])???
  • {???
  • ????boost::thread?thrd(&hello);???
  • ????thrd.join();???
  • ????return?0;???
  • }???


  • enjoy yourself !


    參考資料:

    http://www.cnblogs.com/ComputerG/archive/2011/03/10/1979730.html

    http://www.cnblogs.com/wondering/archive/2009/05/21/boost_setup.html

    http://www.cnblogs.com/wangkangluo1/archive/2011/08/06/2129566.html (某幾處代碼有問題)

    總結

    以上是生活随笔為你收集整理的VS2008编译boost库的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。