2009-01-30 6 views
29

estoy construyendo Boost (estoy usando sistema y sistema de archivos) para MinGW usando bjam:Boost de construcción para la vinculación estática (MinGW)

bjam --toolset=gcc stage 

y construye muy bien, pero yo quiero ser capaz de estáticamente enlace a ella (tengo que tener un único archivo para el producto final), así que intentó:

bjam --link=static --toolset=gcc stage 

pero me da la misma salida. ¿Algunas ideas?

editar segunda pregunta en una fila He respondido momentos después de la publicación: p supongo que dejaré esto aquí para otros.

bjam --build-type=complete --toolset=gcc stage 

Creará dinámico y estático con seguridad.

Respuesta

41

Creo que el enlace es una propiedad en comparación con una opción para bjam. Eso significa que no debería haber ... antes de eso.

Esta es mi línea de comandos para la construcción de bibliotecas única estáticos (Visual C++ sin embargo):

bjam install --toolset=msvc variant=release link=static threading=multi runtime-link=static 

mapeo que a su comando original de construcción, diría que debería ser algo como esto:

bjam --toolset=gcc link=static stage 

o tal vez:

bjam stage --toolset=gcc link=static 

Prueba corriendo

bjam --help 

para obtener más información sobre las propiedades y opciones para bjam.

0

No he creado esto en MinGW pero creo que su primera compilación generará tanto bibliotecas dinámicas como estáticas y la segunda solo estáticas, por lo que si no limpia los directorios de compilación entre compilaciones, probablemente se verá igual .

Cuando escribe "Tengo que tener un solo archivo ..." ¿quiere decir que necesita una única biblioteca que contenga todas las bibliotecas de impulso? Si es así, sospecho que es posible que tengas que 'ar' ellos juntos.

+0

gracias por la respuesta, lo que quiere decir "tengo que tener un solo archivo ..." es que debo tener mi ejecutable, y no hay archivos DLL que vienen con él. – Adam

0

utilizo la siguiente línea de comandos para construir los dos, así como las versiones de enlace dinámico enlazados estáticamente de impulso:

bjam "-sBUILD=debug release <runtime-link>static/dynamic <threading>multi" stage 

Esto se hace con Visual C++ en las ventanas de tu caso es distinto.

8

Solo quiero que tenga en cuenta que con el nuevo impulso (febrero de 2011) necesita construir bjam también ahora ... por alguna razón, el actual bjam descargable no funciona limpiamente.

Así que, primero:

cd ...\boost_1_45_0\tools\build\v2\engine\src

build.bat mingw

su necesidad de añadir bjam a la trayectoria (desde el panel de control, no sólo en el símbolo del cmd).Entonces

cd ...\boost_1_45_0\

bjam --build-type=complete --toolset=gcc stage

Mi disposición es Vista, Boost 1,45, 4,5 MinGW, y basándose en cmd.exe no MSYS.

http://code-slim-jim.blogspot.com/2011/02/boost-in-vista-using-mingw-and-cmdexe.html

+0

¡Gracias! El bjam desaparecido fue una sorpresa para mí al actualizar mi versión de refuerzo recientemente. – Inverse

Cuestiones relacionadas