c++ - 在 Windows 上构建 Boost

标签 c++ windows boost

我正在尝试使用 mingw 在 Windows 7 x64 机器上构建 boost 库。当我尝试运行 b2

b2 --build-dir="C:\boost\build" --toolset=gcc --with-python

构建库时出现错误

Jamroot:138: in modules.load
rule boostcpp.set-version unknown in module Jamfile</C:/Users/root/Downloads/boost_1_47_0>.
C:/Users/root/Downloads/boost_1_47_0/tools/build/v2/build\project.jam:314: in load-jamfile
C:/Users/root/Downloads/boost_1_47_0/tools/build/v2/build\project.jam:62: in load
C:/Users/root/Downloads/boost_1_47_0/tools/build/v2/build\project.jam:168: in project.find
C:/Users/root/Downloads/boost_1_47_0/tools/build/v2\build-system.jam:570: in load
C:\Users\root\Downloads\boost_1_47_0\tools\build\v2/kernel\modules.jam:283: in import
C:\Users\root\Downloads\boost_1_47_0\tools\build\v2\kernel\bootstrap.jam:142: in boost-build
C:\Users\root\Downloads\boost_1_47_0\boost-build.jam:17: in module scope

我做错了什么以及如何解决?感谢任何帮助

谢谢

编辑:

我想将 boost 库与使用 mingw 的 qt sdk 一起使用。这就是我不能使用 boost 安装程序的原因。当然,除非我找不到解决这个问题的方法,否则我将不得不求助于使用 msvc 构建的 qt。

最佳答案

这是一个tutorial我写过使用 MinGW 在 Windows 7 上编译 Boost 1.45.0。我将教程复制到这里以防链接中断:

1) 首先我们需要编译Boost。我们将使用 Boost 的最新版本:1.45.0(可能不是您阅读本教程时的最新版本。

1.1) 下载 Boost 源:

1.2) 要编译Boost,我们需要使用BJam。 BJam 的来源包含在 boost 的来源中。然而,我们不能使用 BJam 的二进制文件:由于以下问题,我们必须编译它:http://comments.gmane.org/gmane.comp.lib.boost.user/64146 .

要编译 BJam,请转到 Boost 的源代码,找到 build.bat(应该位于\boost_1_45_0\tools\build\v2\engine\src),运行 cmd,cd 到 build.bat 的文件夹并执行:构建.bat gcc ( source )

编译持续不到 30 秒。

1.3) 一旦 BJam 被编译,我们现在就可以编译 Boost。在$PATH中添加bjam.exe,运行cmd,cd\boost_1_45_0 然后执行:

bjam --toolset=gcc "--prefix=C:\DestinationFolder" install

DestinationFolder 是您想要的任何文件夹路径 ( source )。

编译持续约 30 分钟。

关于c++ - 在 Windows 上构建 Boost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7947542/

相关文章:

c++ - C++ 中的动态转换有多昂贵?

c++ - 使用c++从文件中读取特定行

windows - 如何调试 'Xaml.UnhandledExceptionEventArgs'异常?

windows - 通过CMD自动重启无响应程序

php - 如何从 MySQL 数据库打印 BLOB 文档

c++ - 类继承错误: Private member

python - 从 C++ 应用程序中的嵌入式 Python 调用时,多数组扩展库上的 Numpy 导入失败

c++ - 绑定(bind)是否采用传入的非 POD 参数的值或引用?

c++ - 产生超几何分布的随机变量

c++ - boost::posix_time::ptime 存储在 Windows 共享内存映射中是否安全?