<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>
  • 網站首頁 > 物聯資訊 > 技術分享

    linux下編譯boost

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

    原文出處:http://blog.ehomy.net/archives/148

     

    工作平臺:Fedora 12

    獲取boost庫

    Linux下官方提供了兩個壓縮版本:
    boost_1_43_0.tar.bz2
    boost_1_43_0.tar.gz



    找到其中一個Unix/Linux包的直接下載地址,然后輸入下列命令

    sudo wget http://downloads.sourceforge.net/project/boost/boost/1.43.0/boost_1_43_0.tar.gz?use_mirror=cdnetworks-kr-1

    解壓
    tar -zxvf boost_1.43.0.tar.gz

    進入解壓目錄
    cd boost_1_43_0

    編譯安裝

    使用下面的命令創建boost自己的編譯工具bjam(目的是保證Boost在任何平臺上都能用bjam編譯),類似于GNU Make。
    ./bootstrap.sh --prefix=/home/usrname/boost_1_43_0/boost_install

    boost將被安裝到/boost_install目錄下,不知名prefix將默認安裝到/usr/local/include和/usr/local/lib下。

     

    建議先查看下幫助文檔,了解些默認選項,命令為
    ./bjam –help

    .bjam命令的格式為:bjam [options] [properties] [targets]

    常用選項(Options)和屬性(Properties)的說明,一般帶有–前綴的關鍵詞為option,沒有的則為property。

     

    –show-libraries
    顯示需要編譯才能使用的庫列表

    –build-type=minimal|complete
    –build-type=minimal為默認值,此時在Linux下只編譯生成release版的動態鏈接C運行庫(C++標準庫)的多線程靜態庫和動態庫。
    –build-type=complete,在Unix/linux下要編譯多個變體(debug或release,多線程或單線程,靜態庫或動態庫,靜態鏈接或動態鏈接C運行庫/C++標準庫)。不建議全部編譯,費時還費空間,提倡按需編譯。

    –layout=versioned|tagged|system
    決定需要編譯的庫名及頭文件的地址目錄名的生成策略。默認Windows下–layout=versioned,Linux下–layout=system。
    當同時編譯多個版本時,最好設置–layout=versioned或–layout=tagged,否則編譯多半會失敗,原因是有的版本同時編譯若不指定命名策略,可能在輸出到指定目錄的時候造成命名沖突。
    注:–build-type=complete時,不需要設置此屬性。但指定variant=debug,release等屬性時,須確保–layout=versioned或–layout=tagged。

    –build-dir=DIR
    指定存放編譯過程中生成的中間文件,目標文件等其他文件的目錄,默認在./bin.v2。

    –with-
    創建和安裝指定的庫
    –without-
    不對指定的庫進行創建和安裝,默認創建所有的庫

    安裝:關鍵詞 install 或 stage
    ./bjam install
    install會安裝頭文件和庫文件到相應指定目錄,頭文件安裝到/usr/local/include下,庫文件安裝到/usr/local/lib下。具體指定安裝目錄見./bjam –help。
    ./bjam stage
    stage說起來只能說是收集生成的庫文件到一個目錄下,通常默認就在./stage下。

    注:
    install 和 stage 貌似不能同時使用,中間會卡住。
    若編譯過程中未指定install或stage,則生成的目標庫文件只存在于–build-dir所指的目錄中,默認為./bin.v2。考慮到此,若無需將頭文件和庫文件安裝,則推薦使用stage關鍵字。

    下面是屬性:
    toolset=toolset
    指定編譯器,默認自動檢測,安裝了多個編譯器的時候可以使用此屬性。
    variant=debug|release
    指定編譯debug或release版本。
    link=static|shared
    指定創建靜態庫或動態庫
    runtime-link=static|shared
    指定創建的庫是靜態鏈接還是動態鏈接到C運行庫(或C++標準庫),這個選項需依據–link的類型,不同的編譯器允許的鏈接策略不一樣,比如在GCC下,在生成動態庫(–link=shared)時,就不允許進行靜態鏈接到C運行庫(或C++標準庫)。
    threading=single|multi
    指定創建多線程或單線程的版本庫。

    屬性可同時設置,如下兩種方式,為了避免名字沖突,建議采取propery=value的格式:
    ./bjam variant=debug,release stage

    ./bjam variant=debug variant=release
    這兩種方式都可以。

    最后執行的創建命令:
    ./bjam --with-filesystem --layout=tagged variant=release link=static threading=single stage

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