2014-04-08 162 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工作太