如何使用 MinGW 构建 Boost 1.55?
Posted
技术标签:
【中文标题】如何使用 MinGW 构建 Boost 1.55?【英文标题】:How do I build Boost 1.55 with MinGW? 【发布时间】:2013-12-14 11:26:31 【问题描述】:我已经下载了 Boost 1.55 和 MinGW。
控制台回答我没有任何命令。 我不明白如何绑定两个路径并激活 GCC 编译器。
P.S.:如果我使用 Microsoft 的编译器构建 boost,我将有大约 8 个错误,错误 3861!!
我该如何构建它?
【问题讨论】:
另见***.com/q/13256788/1390430 【参考方案1】:首先确保您的 mingw 的 bin 目录在您的环境中 PATH
,因此可以从命令提示符调用 gcc
和 g++
。然后进入解压文件所在的 boost 根目录。
使用 bootstrap + b2.exe 进行构建。例如,假设您只想编译 boost 的正则表达式部分。以下命令应该可以解决问题:
bootstrap gcc
b2 toolset=gcc regex
你可以使用:
b2 --show-libraries
获取可以单独构建的模块列表。当然,您可以通过以下方式构建所有这些:
b2 toolset=gcc
查看Boost Invocation 了解可用选项的详细列表。
【讨论】:
我不得不使用bootstrap gcc
@RestlessC0bra 这对我有用,谢谢。使用版本 boost_1_63_0。我补充说,我在我的 project-config.jam 文件中找到了这个“使用 msvc ;”我很困惑 b2 是否会使用 msvc 来编译源代码,但是通过定义 toolset=gcc 一切正常,并且 boost 是使用 mingw 的 gcc 编译的。【参考方案2】:
Greatwolf 的回答对我不起作用,所以这就是我设法让它起作用的方法。
首先,确保MinGW\bin
在您的路径上
转到您的 boost 文件夹的 tools\build\v2
目录。例如,就我而言,它是C:\Boost\boost_1_55_0\tools\build\v2
。然后运行
bootstrap mingw
之后,切换到 Boost 根目录(这部分很重要,因为 b2 会根据当前目录检测要构建的内容)
现在,如果您想构建文件系统,请执行
tools\build\v2\b2 toolset=gcc --build-type=complete stage --with-filesystem
这会将libboost_filesystem-mgw48-d-1_55.dll
等放入stage\lib
。如果您想构建所有内容,只需省略 --with-filesystem
部分即可。
【讨论】:
谢谢你,你的评论对我很有帮助!【参考方案3】:我能够按照 Antimony 的说明构建它。但是我最初得到了这个错误:
Bootstrapping the build engine
\Windows was unexpected at this time.
通过清除 PATH 变量并将 MinGW 文件夹放入其中解决了该错误:
set PATH=C:\MinGW\bin
然后锑的指示为我完成了这项工作。谢谢!!
还有另外两件小事可能会有所帮助。 MinGW 的 BOOST 应该从 Windows shell 构建,而不是从 MSYS shell 构建。而在 1.57 版本中,bootstrap.bat 脚本不再位于 tools\build\v2 中,而是直接位于 tools\build 中。
【讨论】:
【参考方案4】:如果您已将 MinGW/GCC 作为TDM-GCC 的一部分安装,您将拥有一个可以启动的“MinGW 命令提示符”。这将加载一个命令提示符窗口并将 GCC 编译器放在该窗口的 PATH 中。 (类似于随 Visual Studio 安装的“开发人员命令提示符”。)
我认为the "MinGW distro" 也有一个。
如果你有一个集成的命令提示符,你可以简单地:
启动“MinGW 命令提示符” 转到您的 Boost 文件夹(例如 C:/Boost) 运行bootstrap gcc
运行b2 toolset=gcc
(或您需要的任何b2
命令)
如果您正在使用某人未明确设置工具集的示例,您将必须自己添加toolset=gcc
。请注意,toolset
必须放在 property 位置,而不是 option 或 command 位置。来自b2 --help
:
b2 [options] [properties] [install|stage]
因此,如果有人编写命令来调用带有--prefix
选项的install
命令,他们会写成:
b2 --prefix=C:\boost-build install
你可以重写为:
b2 --prefix=C:\boost-build toolset=gcc install
更多详情请见b2 --help
。
【讨论】:
以上是关于如何使用 MinGW 构建 Boost 1.55?的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu 15.04 clang++ 3.6 编译boost 1.59/1.55