在Windows上构建Boost
Building Boost on Windows
我正在尝试使用mingw在Windows 7 x64机器上构建boost库。当我尝试运行b2
时b2 --build-dir="C:boostbuild" --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/buildproject.jam:314: in load-jamfile
C:/Users/root/Downloads/boost_1_47_0/tools/build/v2/buildproject.jam:62: in load
C:/Users/root/Downloads/boost_1_47_0/tools/build/v2/buildproject.jam:168: in project.find
C:/Users/root/Downloads/boost_1_47_0/tools/build/v2build-system.jam:570: in load
C:UsersrootDownloadsboost_1_47_0toolsbuildv2/kernelmodules.jam:283: in import
C:UsersrootDownloadsboost_1_47_0toolsbuildv2kernelbootstrap.jam:142: in boost-build
C:UsersrootDownloadsboost_1_47_0boost-build.jam:17: in module scope
我做错了什么,如何解决它?任何帮助都是感激的
感谢编辑:我想在qt sdk中使用boost库,它使用mingw。这就是为什么我不能使用boost安装程序。当然,除非我不能找到这个问题的解决方案,否则我将不得不求助于使用msvc构建的qt。
这是我编写的在Windows 7上使用MinGW编译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_0toolsbuildv2enginesrc),运行cmd, cd到build.bat的文件夹并执行:build.bat gcc
(源)
编译时间小于30秒。
- 注1: gcc必须在$PATH中。如果没有gcc,可以从http://www.mingw.org/wiki/InstallationHOWTOforMinGW获取。如果您不想在自动安装程序上浪费时间,请使用它。(安装时不要忘记选择c++编译器,默认只安装C编译器)
- 注2:不要调用cygwin的gcc,否则你会得到一个"Access denied"错误,详见http://omgili.com/mailinglist/cygwin/cygwin/com/m2t961f6df41004191807y75bc02cfiabd7f684a8d5f8camailgmailcom.html。最好使用MinGW中包含的gcc,您稍后将与IDE一起使用。
bjam --toolset=gcc "--prefix=C:DestinationFolder" install
其中DestinationFolder
是您想要的文件夹路径(源)。
编译时间约30分钟。
这个线程已经有一年了,但我有同样的问题,并得到了它的工作,所以如果其他人需要一个解决方案,这里是我的。
bjam正在寻找一个名为boostcpp的文件。Jam",这在boost的生产版本中并不存在。幸运的是,你可以在github上找到它。
https://github.com/iNiKe/boost/blob/master/boostcpp.jam下载该文件(或从浏览器复制粘贴到新文件中)并将其保存为"boostcpp"。在你的boost目录(或者它可能是你运行bjam的位置…它们在我的情况下恰好是同一个目录),然后再次运行该命令。希望它对你也有用。
对于那些只需要32位的人,STL的Mingw发行版已经包含了Boost,并且已经为它构建了所有的库。
- 尝试将 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