【发布时间】:2013-12-14 11:26:31
【问题描述】:
我已经下载了 Boost 1.55 和 MinGW。
控制台回答我没有任何命令。 我不明白如何绑定两个路径并激活 GCC 编译器。
P.S.:如果我使用 Microsoft 的编译器构建 boost,我将有大约 8 个错误,错误 3861!!
我该如何构建它?
【问题讨论】:
标签: c++ windows boost build mingw
我已经下载了 Boost 1.55 和 MinGW。
控制台回答我没有任何命令。 我不明白如何绑定两个路径并激活 GCC 编译器。
P.S.:如果我使用 Microsoft 的编译器构建 boost,我将有大约 8 个错误,错误 3861!!
我该如何构建它?
【问题讨论】:
标签: c++ windows boost build mingw
首先确保您的 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
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 部分即可。
【讨论】:
我能够按照 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 中。
【讨论】:
如果您已将 MinGW/GCC 作为TDM-GCC 的一部分安装,您将拥有一个可以启动的“MinGW 命令提示符”。这将加载一个命令提示符窗口并将 GCC 编译器放在该窗口的 PATH 中。 (类似于随 Visual Studio 安装的“开发人员命令提示符”。)
我认为the "MinGW distro" 也有一个。
如果你有一个集成的命令提示符,你可以简单地:
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。
【讨论】: