如何使用MinGW构建Boost 1.55
How do I build Boost 1.55 with MinGW?
我已经下载了Boost 1.55和MinGW。
控制台回答我没有任何命令。我不明白如何绑定两个路径并激活GCC编译器。
附言:如果我用微软的编译器构建boost,我将有大约8个错误,错误为3861!!
我该如何构建它?
首先确保您的mingw的bin目录在您的环境PATH
中,以便可以从命令提示符调用gcc
和g++
。然后进入你的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
。
- 尝试将 boost::stacktrace 添加到 CMake 项目时出现构建错误
- 如何在 Linux for Windows 上通过 MinGW 构建静态 ICU 的 Boost
- 在 Boost::fiber 中引发的BOOST_ASSERT故障 Visual Studio "Debug" 构建
- 虽然我添加了boost库,但Eclipse并不是用C++构建的.为什么
- 如何使用VS 2015构建Boost 1.44
- 无法从 bazel 使用 boost/iostream 构建项目包
- 使用 python3 为 msvc 构建 boost python - 链接器错误
- C++ CMake 构建错误:未定义对"boost::throw_exception(std::exception const&)"的引用
- BOOST :: MUTEX版本与调试构建
- 将Windows上32位和64位的Boost构建到同一文件夹中
- 当我使用 boost 构建绝对路径时,无限递归
- 当我使用 boost 构建 CAGL 演示时,如何修复错误 1001
- 使用boost构建Python扩展
- boost构建中的多个构建目标
- 在Windows上使用SSL和预构建Boost构建Mongo-Cpp驱动程序
- 使用boost构建NodeJ模块(或任何其他库)
- 使用Boost构建单元测试时发生链接器错误
- 是否可以使用boost构建并发进程间消息队列
- 使用Boost.构建和提升.测试链接器错误
- 当使用(自定义)GCC 4时,Boost构建无法进行c++ 11特性检查.X或5