Free mind

          Be fresh and eager every morning, and tired and satisfied every night.
          posts - 39, comments - 2, trackbacks - 0, articles - 0
             :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          編譯boost庫(kù)-用vc2005編譯boost

          Posted on 2007-06-05 12:45 morphis 閱讀(2258) 評(píng)論(0)  編輯  收藏 所屬分類: 1. C/Cpp

          編譯boost庫(kù)-用vc2005編譯boost1.33.1
          //打開(kāi)控制臺(tái)窗口,請(qǐng)使用vs2005在開(kāi)始菜單中的“Visual Studio Tools->Visual Studio 2005 命令提示”打開(kāi)控制臺(tái),這樣vc的的編譯環(huán)境就設(shè)置好了。
          //假設(shè)boost安裝包的解壓的目錄為{BOOST_SRC}中。
          //先編譯出bjam.exe,它被用于安裝boost庫(kù)
          cd {BOOST_SRC}\tools\build\jam_src
          build.bat
          //利用編譯出的bjam.exe程序編譯并安裝boost庫(kù)
          cd {BOOST_SRC}
          copy {BOOST_SRC}\tools\build\jam_src\bin.ntx86\bjam.exe
          //下面的命令的各選項(xiàng)的說(shuō)明:
          //prefix    將boost安裝到的路徑(生成的頭文件和庫(kù)文件都會(huì)放到該路徑中)。
          //重定義以下變量(利用-s設(shè)置):
          //VC80_ROOT  vc2005的安裝路徑,如果未將vc2005安裝到默認(rèn)位置,你必須指定該項(xiàng)。
          //TOOLS         使用的編譯工具,vc2005對(duì)應(yīng)的是vc-8_0
          //PYTHON_ROOT        python的安裝目錄,如果未將BOOST安裝到默認(rèn)位置,你必須指定該項(xiàng)。
          //BUILD         編譯結(jié)果選項(xiàng),默認(rèn)會(huì)生成盡可能多的版本,如調(diào)試版/發(fā)行版,靜態(tài)庫(kù)/動(dòng)態(tài)庫(kù),單線程/多線程。
          bjam "-sVC80_ROOT=D:\Program Files\Microsoft Visual Studio 8\VC" "-sTOOLS=vc-8_0"  "-sPYTHON_ROOT=D:\Program Files\Python24" "--prefix=E:\librarys\boost" install

          boost在vc2005中的編譯出現(xiàn)codepage警告和DEPRECATED函數(shù)的解決近日下載了一個(gè)VC2005 Express Edition,用它來(lái)編譯boost,發(fā)現(xiàn)有不少的warning C4819,說(shuō)代碼文件中有cp936無(wú)法表示的字符,還有就是vc2005特有的廢棄的ANSI函數(shù)的錯(cuò)誤,雖說(shuō)不影響編譯,但是看著時(shí)不時(shí)出現(xiàn)的warning總是讓人心神不安,還容易掩蓋其他的錯(cuò)誤,如果是直接用cl編譯,只要加上/wd4819 /D_CRT_SECURE_NO_DEPRECATE就可以不顯示這兩個(gè)錯(cuò)誤,但是大家都知道boost是使用其特有的boost.build進(jìn)行編譯的,下面我就給出如何修改boost.build來(lái)抑制這兩個(gè)錯(cuò)誤的顯示

          boost.build分為v1和v2兩個(gè)版本
          v1:
          修改$(BOOST_ROOT)/tools/build/v1/vc-8_0-tools.jam

           flags vc - 8_0 C ++ FLAGS :  / Zc:forScope ;
          改為


           flags vc - 8_0 C ++ FLAGS :  / Zc:forScope  / wd4819  / D_CRT_SECURE_NO_DEPRECATE ;
          v2:
          cvs版本
          修改$(BOOST_ROOT)/tools/build/v2/tools/msvc.jam

           #  8.0  adds some more options
           
          一行的下方加上

           flags msvc.compile CFLAGS $(condition) :  / wd4819  / D_CRT_SECURE_NO_DEPRECATE ;
           
          boost 1.33.1版本


              #  8.0  deprecates some of the options
               if   !  [ MATCH  ^ ([ 67 ]. * ) : $(version) ]
              {
                  flags msvc.compile CFLAGS $(condition) /< optimization > speed :  / O2 ;
                  flags msvc.compile CFLAGS $(condition) /< optimization > space :  / O1 ;
                  flags msvc.link.dll MANIFEST :  " mt -manifest  "  ;
                  flags msvc.link.dll OUTPUTRESOURCE :  " -outputresource: "  ;
              }
          改為:


              #  8.0  deprecates some of the options
               if   !  [ MATCH  ^ ([ 67 ]. * ) : $(version) ]
              {
                  flags msvc.compile CFLAGS $(condition) :  / wd4819  / D_CRT_SECURE_NO_DEPRECATE ;
                  flags msvc.compile CFLAGS $(condition) /< optimization > speed :  / O2 ;
                  flags msvc.compile CFLAGS $(condition) /< optimization > space :  / O1 ;
                  flags msvc.link.dll MANIFEST :  " mt -manifest  "  ;
                  flags msvc.link.dll OUTPUTRESOURCE :  " -outputresource: "  ;
              }

          主站蜘蛛池模板: 富源县| 井陉县| 曲麻莱县| 晋江市| 福建省| 西城区| 西平县| 屏东县| 高平市| 舒兰市| 安仁县| 广元市| 兴安县| 德江县| 浏阳市| 井研县| 祁东县| 公安县| 金门县| 广德县| 法库县| 北川| 夹江县| 偃师市| 锡林郭勒盟| 卫辉市| 房山区| 彭山县| 兰西县| 奉节县| 双鸭山市| 大关县| 新巴尔虎右旗| 安图县| 社旗县| 庆城县| 喀喇沁旗| 平原县| 驻马店市| 郸城县| 福鼎市|