如何使用MinGW构建Boost 1.55

How do I build Boost 1.55 with MinGW?

本文关键字:Boost 构建 何使用 MinGW      更新时间:2023-10-16

我已经下载了Boost 1.55和MinGW。

控制台回答我没有任何命令。我不明白如何绑定两个路径并激活GCC编译器。

附言:如果我用微软的编译器构建boost,我将有大约8个错误,错误为3861!!

我该如何构建它?

首先确保您的mingw的bin目录在您的环境PATH中,以便可以从命令提示符调用gccg++。然后进入你的boost的根目录,在那里你提取了文件。

然后使用bootstrap+b2.exe进行构建。例如,假设您只想编译boost的regex部分。以下命令应该起作用:

bootstrap gcc
b2 toolset=gcc regex

您可以使用:

b2 --show-libraries

以获得可以单独构建的模块列表。当然,你可以用来构建所有这些

b2 toolset=gcc

查看Boost Invocation以获取可用选项的详细列表。

Greatwolf的答案对我不起作用,所以下面是我如何让它发挥作用的。

首先,确保MinGWbin在路径上

转到boost文件夹的toolsbuildv2目录。例如,在我的案例中,它是C:Boostboost_1_55_0toolsbuildv2。然后运行

bootstrap mingw

之后,切换到根Boost目录(这一部分很重要,因为b2检测到要基于当前目录构建什么)

现在,如果您想构建文件系统,请执行

toolsbuildv2b2 toolset=gcc --build-type=complete stage --with-filesystem

这将把libboost_filesystem-mgw48-d-1_55.dll等放在stagelib中。如果您想构建所有内容,只需省略--with-filesystem部分。

我能够按照Antimony的说明构建它。然而,我最初得到了这个错误:

Bootstrapping the build engine
Windows was unexpected at this time.

通过清除PATH变量并只在其中放入MinGW文件夹,错误得到了解决:

set PATH=C:MinGWbin

然后Antimony的指示为我完成了任务。谢谢!!

只有另外两件小事可能会有所帮助。MinGW的BOOST应该从Windows shell构建,而不是从MSYS shell构建。在1.57版本中,bootstrap.bat脚本不再位于tools\build\v2中,而是直接位于tools\bbuild中。

如果您已经将MinGW/GCC作为TDM-GCC的一部分进行了安装,那么您将有一个可以启动的"MinGW命令提示符"。这将加载一个命令提示符窗口,并将GCC编译器放在该窗口的PATH上。(类似于Visual Studio中安装的"开发人员命令提示符"。)

我认为"MinGW发行版"也附带了一个。

如果你有一个集成的命令提示符,你可以简单地:

  • 启动"MinGW命令提示符"
  • 转到您的Boost文件夹(例如C:/Boost)
  • 运行bootstrap gcc
  • 运行b2 toolset=gcc(或您需要的任何b2命令)

如果您使用的示例中有人没有明确设置工具集,那么您必须自己添加toolset=gcc。请注意,toolset必须放置在属性位置,而不是选项命令的位置。来自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