Free mind

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

          編譯boost庫-用vc2005編譯boost

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

          編譯boost庫-用vc2005編譯boost1.33.1
          //打開控制臺窗口,請使用vs2005在開始菜單中的“Visual Studio Tools->Visual Studio 2005 命令提示”打開控制臺,這樣vc的的編譯環境就設置好了。
          //假設boost安裝包的解壓的目錄為{BOOST_SRC}中。
          //先編譯出bjam.exe,它被用于安裝boost庫
          cd {BOOST_SRC}\tools\build\jam_src
          build.bat
          //利用編譯出的bjam.exe程序編譯并安裝boost庫
          cd {BOOST_SRC}
          copy {BOOST_SRC}\tools\build\jam_src\bin.ntx86\bjam.exe
          //下面的命令的各選項的說明:
          //prefix    將boost安裝到的路徑(生成的頭文件和庫文件都會放到該路徑中)。
          //重定義以下變量(利用-s設置):
          //VC80_ROOT  vc2005的安裝路徑,如果未將vc2005安裝到默認位置,你必須指定該項。
          //TOOLS         使用的編譯工具,vc2005對應的是vc-8_0
          //PYTHON_ROOT        python的安裝目錄,如果未將BOOST安裝到默認位置,你必須指定該項。
          //BUILD         編譯結果選項,默認會生成盡可能多的版本,如調試版/發行版,靜態庫/動態庫,單線程/多線程。
          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中的編譯出現codepage警告和DEPRECATED函數的解決近日下載了一個VC2005 Express Edition,用它來編譯boost,發現有不少的warning C4819,說代碼文件中有cp936無法表示的字符,還有就是vc2005特有的廢棄的ANSI函數的錯誤,雖說不影響編譯,但是看著時不時出現的warning總是讓人心神不安,還容易掩蓋其他的錯誤,如果是直接用cl編譯,只要加上/wd4819 /D_CRT_SECURE_NO_DEPRECATE就可以不顯示這兩個錯誤,但是大家都知道boost是使用其特有的boost.build進行編譯的,下面我就給出如何修改boost.build來抑制這兩個錯誤的顯示

          boost.build分為v1和v2兩個版本
          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: "  ;
              }

          主站蜘蛛池模板: 久治县| 图木舒克市| 册亨县| 常熟市| 南宁市| 扶余县| 仲巴县| 张家界市| 临猗县| 楚雄市| 九龙县| 永仁县| 丁青县| 莫力| 都昌县| 南平市| 繁昌县| 新绛县| 鲜城| 太原市| 平凉市| 福泉市| 全州县| 曲阜市| 巫山县| 南城县| 平谷区| 小金县| 苏州市| 萨迦县| 郓城县| 海原县| 芦溪县| 万山特区| 庆云县| 纳雍县| 澄迈县| 伊宁县| 龙胜| 榆树市| 亳州市|