天天看點

VS2010編譯使用STLport與boost

Win7下編譯STLport 5.2.1 與 boost_1_54_0的方法

(一)編譯STLport:

  1、打開VS2010的 “Visual Studio Command Prompt (2010)” 工具

  2、進入到STLport的解壓目錄,而且在該目錄下可以看到“configure.bat”

  3、cd 進入STLport目錄下

  4、輸入 “configure msvc9”

  5、輸入 “cd build/lib”

  6、輸入 “nmake clean install”

  7、可以将“../build/lib"目錄下的obj目錄删除。

  可能出現錯誤如:

    error C2084: function'__int64 abs(__int64)' already has a body

  解決方法:

    1、打開你的STLport目錄\stlport\stl下的_cstdlib.h,用vs2010或者其它工具

    2、将158行:

        158 inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }

      變成

        #if !defined(_STLP_MSVC) || (_STLP_MSVC < 1600)

        inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; }

        #endif

(二)用STLport編譯boost_1_54_0

  1、打開VS2010的 “Visual Studio Command Prompt (2010)” 工具

  2、進入到boost解壓目錄,在該目錄下可以看到“bootstrap.bat”

  3、cd boost目錄

  4、輸入 “bootstrap.bat”

  5、則在目前目錄下會生成一個bjam.exe的應用程式

  6、進入到 “boos目錄/tools/build/v2”,在該目錄下找到user-config.jam這個檔案,以文本的形式打開,在文本的最後添加:“using stlport : 5.2.1 : 你的STLport目錄/stlport ;”,一定得注意“:”與“;”前有一個空格,否則,執行會失敗。

  7、輸入 “bjam --toolset=msvc-10.0 --build-type=complete stdlib=stlport stage”

(三)不用STLport編譯boost_1_54_0

  在上面的第6步:輸入“.\b2”,而且這種方法比較快。

(四)針對boost,其實我們可以嵌入自己的工程編譯(《boost程式庫完全開發指南》),也就是說我們隻需要解壓即可。但是這樣可以就不會使用STLport編譯了。

(五)将STLport目錄與Boost目錄加入到VS2010中。

  在“VC++Directories”的“Include Directories”中增加boost目錄與STLport目錄

VS2010編譯使用STLport與boost

轉載于:https://www.cnblogs.com/wang-can/p/3338942.html