我正在嘗試使用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
錯誤後運行./b2
和mingw.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,但實際上並不是。
所以,我一下子把我的頭撞在幾堵牆上。任何人都可以幫助我克服這些障礙嗎?
「該文件意味着帶有一個預編譯的lib目錄「 - 它是如何暗示的?恐怕沒有。從外殼MSys的用'--with工具集= mingw' parameter' Bootsraping然後構建Boost庫是正確的道路要走。不要運行'./b2'嘗試:'./b2 toolset = gcc'(在MSys shell中)。 –
@IgorR。在http://www.boost.org/doc/libs/1_55_0/more/getting_started/windows文檔。在第一段中的html聲明中,您只需要「解壓縮以安裝完整的Boost發行版」,並在其下方的目錄樹中包含一個「lib」文件夾,這兩個文件最初都暗示下載已包含該文件夾。 – MidnightLightning