2014-04-08 210 views
0

我正在嘗試使用MinGW編譯器工具鏈(而不是Visual Studio)編譯Windows的Boost庫(作爲構建比特幣客戶端的先決條件)並運行錯誤。在Windows XP上編譯Boost

以下各種指南在線,我有一個工作bjam應用程序,和boost_1_55_0源文件。我試圖在Windows外殼做:

  • path/to/bjam.exe toolset=gcc --build-type=complete stage(在那個比特幣提供的說明),但得到mingw.jam: No such file or directory錯誤

  • bootstrap mingw從標準的DOS命令運行成功,但.\b2後發出一串的'cl' is not recognized as an internal or external command, operable program or batch file錯誤,意味着它沒有真正設置爲使用gcc/mingw,因爲它要求使用Microsoft編譯器。

  • bootstrap.sh --with-toolset=mingw從MSYS提示(如建議here,創建不具有許多錯誤的日誌文件,但會造成mingw.jam no such file錯誤後運行./b2mingw.init unknown錯誤。

  • 下載從http://sourceforge.net/projects/boost/files/boost-binaries/1.55.0/(boost_1_55_0-MSVC-12.0-64.exe)編譯的二進制文件。提取和參照lib和頭文件,編譯最終的可執行文件會因各種升壓功能一大堆undefined reference to 'boost::system::generic_category()',暗示給我後,庫文件AREN」實際上是否包含正確的定義?是因爲他們是Visual Studio庫嗎?

  • http://www.boost.org/users/history/version_1_55_0.html(boost_1_55_0.7z)下載歸檔文件意味着帶有預編譯的lib dir,但實際上並不是。

所以,我一下子把我的頭撞在幾堵牆上。任何人都可以幫助我克服這些障礙嗎?

+0

「該文件意味着帶有一個預編譯的lib目錄「 - 它是如何暗示的?恐怕沒有。從外殼MSys的用'--with工具集= mingw' parameter' Bootsraping然後構建Boost庫是正確的道路要走。不要運行'./b2'嘗試:'./b2 toolset = gcc'(在MSys shell中)。 –

+0

@IgorR。在http://www.boost.org/doc/libs/1_55_0/more/getting_started/windows文檔。在第一段中的html聲明中,您只需要「解壓縮以安裝完整的Boost發行版」,並在其下方的目錄樹中包含一個「lib」文件夾,這兩個文件最初都暗示下載已包含該文件夾。 – MidnightLightning

回答

0

我用下面的步驟來成功打造提升1.54版本中的MinGW/MSYS環境:

  1. 構建bjam.exeb2.exe
    boost_1_54_0\tools\build\v2\engine>build.bat mingw

  2. 複製構建工具到根目錄:
    cp boost_1_54_0\tools\build\v2\engine\bin.ntx86\*.exe boost_1_54_0

  3. 運行bjam.exe
    bjam --toolset=gcc --build -type=complete install > boost_build.log

我使用的這個過程,對各種刺激的版本略有不同,所以它是一個很好的猜測它將爲1.55工作太