• <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>

            歲月流轉(zhuǎn),往昔空明

            C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
              118 Posts :: 3 Stories :: 413 Comments :: 0 Trackbacks

            關(guān)鍵字:boost 編譯 安裝

            boost編譯。沒啥新東西,老生常談。

            先給出英文的編譯幫助,有什么不明白的或者我沒說清楚的請查閱并確認(rèn)。
            www.boost.org/more/getting_started.html
            或者你的boost的安裝路徑下的more/getting_started.html

            這里以1.33.1為例。

            1.下載boost包,并解壓到某個文件夾下。這里用為方面起見$boost_dir代替,在說明路徑的地方如果出現(xiàn)了$boost_dir請用實際的boost的解壓路徑替代。
            注:如果你下載了boost的一些增補包,這些包一般是在boost從上一個大版本到新大版本之前被收錄的一些新的庫或者是新的編譯工具,例如新的bjam。請不要以為是重名而把同名文件夾覆蓋了。看準(zhǔn)合適位置解壓就是了。
            2.打開命令行工具。以下的主要工作都將在命令行中進行。

            3.首先是編譯jam工具。
            ?3.1 使用命令行
            ??SET PATH=%PATH%;$boost_dir\tools\build\jam_src\;
            ?設(shè)置環(huán)境變量。這一步也可以在“我的電腦點右鍵->屬性->高級->環(huán)境變量->user variable或system variable中"設(shè)置,而且是永久性的。使用set設(shè)置的環(huán)境變量只對當(dāng)前命令行有效。
            ?3.2 ?運行build.bat。在命令行中查看結(jié)果。如果結(jié)果顯示“update 1 targets successful"這樣的信息,則表明編譯成功。此時“$boost_dir\tools\build\jam_src\”文件夾可發(fā)現(xiàn)一個新的文件夾btn.x86,在里面可以發(fā)現(xiàn)bjam.exe。(不知道會不會有btn.x64文件夾。。。我是X86的機器,不太清楚)
            ??將這個文件夾也添加到環(huán)境變量中。
            ??SET PATH=%PATH%;$boost_dir\tools\build\jam_src\btn.x86;
            ?3.3?如果沒能成功編譯bjam,則可能是編譯器的設(shè)置問題。對于Visual C++(2005Express有點特殊)編譯器,找到common7\tools\vcvars32.bat,把它拖到命令行窗口中,運行一下,然后再執(zhí)行build.bat。對于2005 Express,這個編譯器攜帶的是精簡的編譯環(huán)境,你可以同樣找到vcvars.txt,然后更名為vcvars.bat,按照剛才的方式執(zhí)行一邊即可。

            4.bjam編譯好后,就可以利用它編譯庫文件了。將命令行的工作目錄放置到$boost_dir下,然后執(zhí)行一下bjam --help,看能否正確的執(zhí)行bjam.exe。如果提示找不到文件,將bjam所在的路徑添加到環(huán)境變量path中,實在不行就把bjam復(fù)制到$boost_dir下。

            5.如果試圖使用boost.python庫,則需要添加安裝python,并設(shè)置對應(yīng)的環(huán)境變量,這里的root對應(yīng)的是你的python的安裝路徑,ver對應(yīng)的是你的python版本。
            SET PYTHON_ROOT=X:\Python2.3.4
            SET PYTHON_VERSION=2.3

            6.如果使用了boost.iostreams的compress或者unicode功能,請參閱對應(yīng)的提示。通常你需要zlib和icu這兩個庫。

            7.編譯選項:
            選項參見$boost_dir\more\getting_started.html,這里有詳細(xì)的說明,以下僅列舉一個很具代表性的選項。

            bjam -sBOOST_ROOT=. -sTOOLS=vc-7_1 --with-thread "-sBUILD=debug release <runtime-link>static/dynamic"

            上面的命令行設(shè)置環(huán)境變量BOOST_ROOT為當(dāng)前路徑,使用Visual C++ 7.1編譯器,僅編譯thread庫(因為完整的編譯耗時很長,所以建議使用--with-<library_name>來編譯指定庫。類似的還有--without-<library_name>選項)。

            編譯好的庫都在$boost_dir\bin下。你可以進去搜索所有的lib/dll文件然后剪切出來放到一個文件夾中,再把其他的中間文件刪掉就好了。

            類似的你還可以編譯其他的類庫,具體的庫可能需要依賴一些其他的庫,你可以參見庫的編譯說明。另外生成的庫運行時鏈接情況也是不一樣的,例如有的庫不能支持靜態(tài)鏈接。這一點請詳細(xì)閱讀幫助文件。

            8.使用:
            這里可能不太好舉例。先將$boost_dir加入到編譯器的include目錄列表中。然后我編譯好了thread庫,并且將所有的相關(guān)文件都統(tǒng)一放置到了$boost_dir\bin\thread\目錄下,我便可以在我的工程中將該目錄添加到鏈接文件的路徑中。然后依據(jù)情況選擇是否手工添加庫文件。在幫助的“Automatic Linking on Windows”一節(jié),文檔說,很多需要編譯的庫,boost都使用了#pragma指示字指明了庫名稱,也就是說只需要加上庫所在的路徑就好了。

            最后是關(guān)于運行時庫的問題。最好把你的工程選用的CRT與編譯boost庫時使用的CRT一致起來。這一點可以根據(jù)boost文件的名稱判斷。否則的話可能會出現(xiàn)內(nèi)存的使用錯誤(尤其是分配和釋放不在一個堆的時候更是如此)。

            最后是一篇中文文檔。這篇也不錯。如果不清楚,E文也不是太好的可以參看它
            http://blog.csdn.net/billdavid/archive/2005/03/07/313347.aspx

            posted on 2006-10-24 22:13 空明流轉(zhuǎn) 閱讀(2464) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            93精91精品国产综合久久香蕉| AV无码久久久久不卡蜜桃 | 四虎亚洲国产成人久久精品| 日本欧美国产精品第一页久久| 久久热这里只有精品在线观看| 久久久久人妻一区精品| 伊人久久大香线蕉精品| 伊人久久大香线蕉综合网站| 日日狠狠久久偷偷色综合免费| 一本久久a久久精品亚洲| 久久亚洲sm情趣捆绑调教| 久久久久久无码国产精品中文字幕| 三级片免费观看久久| 999久久久免费精品国产| 99久久99久久| 亚洲AV乱码久久精品蜜桃| 无码超乳爆乳中文字幕久久| 精品久久人人做人人爽综合| 精品国产婷婷久久久| 久久久久亚洲av无码专区喷水| 日韩精品久久久久久久电影蜜臀| 久久青青草原精品国产| 久久久久久久综合狠狠综合| 久久天天躁夜夜躁狠狠躁2022 | 久久午夜无码鲁丝片午夜精品| 久久精品国产清自在天天线| AV无码久久久久不卡网站下载| 97久久国产综合精品女不卡| 伊人久久国产免费观看视频| 久久精品亚洲乱码伦伦中文| 国产午夜精品久久久久九九| 日本久久久精品中文字幕| 久久精品国产只有精品66| 欧美亚洲另类久久综合| 久久线看观看精品香蕉国产| 久久精品国产91久久综合麻豆自制| 国产一区二区精品久久凹凸| 日韩精品国产自在久久现线拍| 久久99国产精一区二区三区| 青青热久久综合网伊人| 久久精品国产欧美日韩|