在WIndows XP上编译Boost

时间:2014-04-08 03:28:46

标签: gcc boost mingw

我正在尝试编译Windows的Boost库(作为构建比特币客户端的先决条件),使用MinGW编译器工具链(而不是Visual Studio)并运行错误。

在线查看各种指南后,我有一个有效的bjam应用程序和boost_1_55_0源文件。我试过在windows shell中做:

  • path/to/bjam.exe toolset=gcc --build-type=complete stage(比特币提供的说明),但获得mingw.jam: No such file or directory错误

  • 来自标准DOS shell的
  • bootstrap mingw成功运行,但.\b2发出了一堆'cl' is not recognized as an internal or external command, operable program or batch file错误,暗示它并未真正设置为使用gcc / mingw,因为它要求使用Microsoft编译器。

  • 来自MSYS提示符的
  • bootstrap.sh --with-toolset=mingw(建议here,它创建的日志文件没有那么多错误,但在导致{./b2之后运行mingw.jam no such file {1}}错误,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()'以获得各种提升功能,这意味着库文件实际上并不包含正确的定义?是因为他们是Visual Studio库吗?

  • http://www.boost.org/users/history/version_1_55_0.html(boost_1_55_0.7z)下载档案,文档中暗示的是带有预编译的lib目录,但实际上并非如此。

所以,我立刻在几面墙上撞了我的脑袋。任何人都可以帮我解决任何这些障碍吗?

1 个答案:

答案 0 :(得分:0)

我使用以下步骤在MinGW / MSYS环境中成功构建boost版本1.54:

  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

  4. 我使用这个过程略有不同的升级版本,所以它很好的猜测它也适用于1.55