【问题标题】:Building boost 1.61.0 with MinGW 5.3.0使用 MinGW 5.3.0 构建 boost 1.61.0
【发布时间】:2016-11-01 09:02:32
【问题描述】:

有没有人成功地为 Mingw 构建了 boost 1.61.0?我已经对此进行了谷歌搜索,所有过去显然运作良好的建议现在都导致错误。 boost 的"Getting Started on Windows" 页面是一个结构不良、不完整的混乱,似乎已经有一段时间只获得了最基本的更新(其中甚至有几个死链接),这无济于事。我设法为较旧的 MinGW 版本构建了 boost 1.58,但那是很久以前的事了,我愚蠢地忽略了写下使其工作所需的各个步骤。 :-\

【问题讨论】:

    标签: c++ gcc boost mingw


    【解决方案1】:

    好的,我确实让它工作了,但显然 here 讨论的 boost 构建系统中的错误仍在 boost 1.61 中。我通过跳过遇到此问题的库并仅构建我需要的库来解决这个问题。这对我有用。

    1. 下载boost_1_61_0.7z并解压到D:\Dev\Libs\boost\boost_1_61_0
    2. 扩展 PATH 变量以包含包含 MinGW g++.exe 的 bin 文件夹,并确保在此之前没有其他 g++.exe 实例出现在 PATH 中(实际上已跳闸我第一次上来,因为我安装的几个程序都带有自己的 g++ 版本)。
    3. 打开 cmd 窗口。
    4. 运行cd D:\Dev\Libs\boost\boost_1_61_0\tools\build
    5. 运行.\bootstrap.bat(如果您跳过此步骤,第 6 步将失败并显示“未知工具集:mingw”... WTF???)
    6. 运行.\bootstrap.bat mingw
    7. 运行.\b2.exe install toolset=gcc --prefix=D:\Dev\Libs\boost\boost_1_61_0\b2_for_mingw
    8. 运行cd D:\Dev\Libs\boost\boost_1_61_0
    9. 运行set PATH=%PATH%;D:\Dev\Libs\boost\boost_1_61_0\b2_for_mingw\bin
    10. 运行 b2 toolset=gcc --build-type=complete stage --with-filesystem --with-system(因为我只需要 filesystemsystem 库)。

    编辑:对于 boost 1.64,必须完全跳过第 5 步,并且在第 6 步中需要指定 gcc 而不是 mingw,正如用户 fest 在 cmets 中指出的那样。

    【讨论】:

    • 对于 boost 1.63,我必须在第 6 步中使用 .\bootstrap.bat gcc
    • 从 1.64 开始,mingw 再次成为工具集选项,但似乎不起作用。 Boost.Build 文档 (link) 似乎推荐使用 gcc 选项来使用 mingw。
    【解决方案2】:

    @antred 的回答效果很好。只有编译 boost 1.67.0 所需的更改如下:

    • 代替步骤 5 和 6 运行 .\bootstrap.bat gcc
    • 在第 10 步运行 b2 --build-dir="C:\Program Files\boost_1_67_0\build" --prefix="C:\Program Files\boost" toolset=gcc install

    【讨论】:

      猜你喜欢
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 2012-12-08
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多