2011-10-30 25 views
6

Estoy tratando de construir bibliotecas de impulso en la máquina con Windows 7 x64 usando mingw. Cuando trato de ejecutar b2Building Boost en Windows

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

para construir las bibliotecas consigo un 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 

¿Qué estoy haciendo mal y cómo solucionarlo? Cualquier ayuda se agradece

Gracias

Editar:

quiero usar las bibliotecas de Boost con SDK QT, que utiliza MinGW. Es por eso que no puedo usar el instalador de impulso. Por supuesto, a menos que no encuentre la solución a este problema, tendré que recurrir al uso de qt construido con msvc.

+0

¿Por qué no usa [el instalador] (http://www.boostpro.com/download/)? Hace que todo sea muy fácil. –

+1

'bjam' se supone que funciona. Usar el instalador es una solución, pero no resuelve el problema subyacente. –

+0

Supongo que quería decir '--toolset = gcc' en lugar de' toolset = gcc' – nickb

Respuesta

5

Aquí hay un tutorial que escribí para compilar Boost 1.45.0 en Windows 7 usando MinGW. Copio el tutorial aquí en caso de que el enlace se rompa:

1) Primero tenemos que compilar Boost. Vamos a utilizar la última versión de Boost: 1.45.0 (probablemente no es la versión más reciente en el momento en que usted lea este tutorial

1.1.) Descargar fuentes Boost:

1.2) Para compilar Boost, necesitamos usar BJam. Las fuentes de BJam están incluidas en las fuentes de boost. Sin embargo, no podemos usar los binarios de BJam: debemos compilarlo debido al siguiente problema: http://comments.gmane.org/gmane.comp.lib.boost.user/64146.

Para compilar BJam, vaya a las fuentes de Boost, encuentre build.bat (debe ubicarse en \ boost_1_45_0 \ tools \ build \ v2 \ engine \ src), ejecute cmd, cd en la carpeta build.bat y ejecute: build.bat gcc (source)

La compilación dura menos de 30 segundos.

1.3) Una vez compilado BJam, ahora podemos compilar Boost. Añadir bjam.exe en $ PATH, cmd correr, cd \ boost_1_45_0 luego ejecutar:

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

donde DestinationFolder es cualquier camino carpeta que desee (source).

La compilación dura unos 30 minutos.

+0

No funcionó. Tengo el mismo error. – Martynas

1

Para aquellos que solo necesitan 32 bits, STL's Mingw Distro tiene Boost incluido con todas las bibliotecas ya compiladas para él.

+0

Este no tenía libboost_python creado, la única biblioteca que necesitaba. Probablemente voy a mudarme a visual studio 2008. – Martynas

+0

@Martynas O.K .. – Shadow2531

2

Este hilo tiene un año de antigüedad, pero tuve el mismo problema y lo puse en funcionamiento, por lo que, en caso de que alguien más necesite una solución, aquí está el mío.

bjam estaba buscando un archivo llamado "boostcpp.jam" que no existía en la versión de producción de boost. Afortunadamente, puedes encontrarlo en github.

https://github.com/iNiKe/boost/blob/master/boostcpp.jam

Descargar el archivo (o copiar y pegar desde el navegador a un nuevo archivo) y guardarlo como "boostcpp.jam" en el directorio de impulso (o tal vez es la ubicación donde se ejecuta desde bjam ... resultaron ser el mismo directorio en mi situación) y ejecutar el comando nuevamente. Espero que también funcione para ti.