Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Building Boost on Windows

Tags:

c++

windows

boost

I am trying to build boost libraries on Windows 7 x64 machine using mingw. When I try to run b2

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

to build the libraries I get an error

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

What am I doing wrong and how to fix it? Any help is appreciated

Thanks

Edit:

I want to use boost libraries with qt sdk, which uses mingw. That's why I can't use the boost installer. Of course, unless I fail to find solution to this problem, I will have to resort to using qt built with msvc.

like image 291
Martynas Avatar asked Oct 30 '11 20:10

Martynas


1 Answers

Here is a tutorial I had written to compile Boost 1.45.0 on Windows 7 using MinGW. I copy the tutorial here in case the link breaks:

1) First we need to compile Boost. We'll use Boost's latest version: 1.45.0 (probably not the latest version at the time you'll read this tutorial.

1.1) Download Boost sources:

  • http://www.boost.org/users/download/
  • or directly: http://sourceforge.net/projects/boost/files/boost/1.45.0/boost_1_45_0.7z/download)

1.2) To compile Boost, we need to use BJam. BJam's sources are included in boost's sources. Yet, we can't use BJam's binaries: we must compile it because of the following problem: http://comments.gmane.org/gmane.comp.lib.boost.user/64146.

To compile BJam, go to Boost's sources, find build.bat (should be located in \boost_1_45_0\tools\build\v2\engine\src), run cmd, cd to build.bat's folder and execute: build.bat gcc (source)

Compilation lasts less than 30 seconds.

  • Note 1: gcc must be in the $PATH. If you don't have gcc, you can get it at http://www.mingw.org/wiki/InstallationHOWTOforMinGW. Use the automated installer if you don't want to waste time on it. (don't forget to select the C++ compiler during the installation, it will only install the C compiler by default)
  • Note 2: don't call cygwin's gcc otherwise you'll get an "Access denied" error, see http://omgili.com/mailinglist/cygwin/cygwin/com/m2t961f6df41004191807y75bc02cfiabd7f684a8d5f8camailgmailcom.html for more details. Better use gcc included in the MinGW you will later use with your IDE.

1.3) Once BJam is compiled, we can now compile Boost. Add bjam.exe in $PATH, run cmd, cd \boost_1_45_0 then execute:

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

where DestinationFolder is whatever folder path you want (source).

Compilation lasts around 30 minutes.

like image 50
Franck Dernoncourt Avatar answered Sep 19 '22 13:09

Franck Dernoncourt