C++ 使用MinGW 5.3.0构建boost 1.61.0

C++ 使用MinGW 5.3.0构建boost 1.61.0,c++,gcc,boost,mingw,C++,Gcc,Boost,Mingw,有没有人成功地为Mingw构建了boost 1.61.0?我已经在谷歌上搜索过了,所有在过去很有效的建议现在都出现了错误。boost的页面是一个结构糟糕、不完整的烂摊子,一段时间以来似乎只得到了最基本的更新(甚至有几个死链接)。我设法为一个更老的MinGW版本构建了boost 1.58,但那是很久以前的事了,我愚蠢地忽略了写下使其工作所需的各个步骤-\ 好的,我确实让它工作了,但显然讨论的boost构建系统中的bug仍然存在于boost 1.61中。我绕过了这个问题,跳过了遇到这个问题的库,只构

有没有人成功地为Mingw构建了boost 1.61.0?我已经在谷歌上搜索过了,所有在过去很有效的建议现在都出现了错误。boost的页面是一个结构糟糕、不完整的烂摊子,一段时间以来似乎只得到了最基本的更新(甚至有几个死链接)。我设法为一个更老的MinGW版本构建了boost 1.58,但那是很久以前的事了,我愚蠢地忽略了写下使其工作所需的各个步骤-\

好的,我确实让它工作了,但显然讨论的boost构建系统中的bug仍然存在于boost 1.61中。我绕过了这个问题,跳过了遇到这个问题的库,只构建了我需要的库。这是对我有用的东西

  • 下载boost_1_61_0.7z并将其解压缩到D:\Dev\Libs\boost\boost_1_61_0
  • 扩展PATH变量以包含包含MinGW g++.exe的bin文件夹,并确保在此之前的PATH中不会出现其他g++.exe实例(这实际上是我第一次被绊倒,因为我安装的几个程序都带有自己的g++版本)
  • 打开cmd窗口
  • 运行
    cd D:\Dev\Libs\boost\boost\u 1\u 61\u 0\tools\build
  • 运行
    \bootstrap.bat
    (如果跳过此步骤,步骤6将失败,出现“未知工具集:mingw”…WTF??)
  • 运行
    \bootstrap.bat mingw
  • 运行
    \b2.exe install toolset=gcc--prefix=D:\Dev\Libs\boost\boost\u 1\u 61\u 0\b2\u for\u mingw
  • 运行
    cd D:\Dev\Libs\boost\boost\u 1\u 61\u 0
  • 运行
    设置路径=%PATH%;D:\Dev\Libs\boost\boost\u 1\u 61\u 0\b2\u for\u mingw\bin
  • 运行
    b2 toolset=gcc--build type=complete stage--with filesystem--with system
    (因为我只需要文件系统和系统库)

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

    来自@antred的答案非常有效。为了编译boost 1.67.0,我只需要做如下更改:

    • 运行
      \bootstrap.bat gcc
    • 在步骤10中,运行b2--build dir=“C:\Program Files\boost\u 1\u 67\u 0\build”--prefix=“C:\Program Files\boost”toolset=gcc install

    对于boost 1.63,我必须在步骤6中使用
    \bootstrap.bat gcc
    。从1.64开始,
    mingw
    再次成为一个工具集选项,但似乎不起作用。Boost.Build文档()似乎推荐使用mingw的
    gcc
    选项。