我正在尝试使用 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 源:
- http://www.boost.org/users/download/
- 或直接:http://sourceforge.net/projects/boost/files/boost/1.45.0/boost_1_45_0.7z/download )
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:gcc 必须在 $PATH 中。如果你没有 gcc,你可以在 http://www.mingw.org/wiki/InstallationHOWTOforMinGW 获得它。 .如果您不想在上面浪费时间,请使用自动安装程序。 (安装时不要忘记选择C++编译器,默认只会安装C编译器)
- 注意 2:不要调用 cygwin 的 gcc,否则您会收到“拒绝访问”错误,请参阅 http://omgili.com/mailinglist/cygwin/cygwin/com/m2t961f6df41004191807y75bc02cfiabd7f684a8d5f8camailgmailcom.html更多细节。更好地使用 MinGW 中包含的 gcc,您稍后将在您的 IDE 中使用。
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/