Estoy compilación de impulso con bjam en Windows 7 (64 bits-debe ser irrelevante)

D:\development\boost\boost_1_44\libs\iostreams\build>bjam stage ^
--toolset=msvc-10.0 link=static ^
--build-type=complete ^
-s ZLIB_SOURCE=C:\zlib125-dll ^
-s ZLIB_LIBPATH=C:\zlib125-dll\lib ^
-s ZLIB_INCLUDE=C:\zlib125-dll\include ^
-s ZLIB_BINARY=C:\zlib125-dll

Pero solo me dan

stage/libboost_iostreams-vc100-mt-gd-1_44.lib
bin.v2/libs/iostreams/build/msvc-10.0/debug/threading-multi/boost_iostreams-vc100-mt-gd-1_44.dll
bin.v2/libs/iostreams/build/msvc-10.0/debug/threading-multi/boost_iostreams-vc100-mt-gd-1_44.lib

bin.v2/libs/iostreams/build/zlib/msvc-10.0/debug/threading-multi/boost_zlib-vc100-mt-gd-1_44.dll
bin.v2/libs/iostreams/build/zlib/msvc-10.0/debug/threading-multi/boost_zlib-vc100-mt-gd-1_44.lib

pero stage/libboost_zlib-vc100-mt-gd-1_44.lib falta.

Estoy recopilando algo de malo?

cuando intento ejecutar mi proyecto que ha funcionado bien con el impulso y la auto-compilado boost/hilo de las bibliotecas me sale el siguiente error al incluir el impulso zlib cosas

6>LINK : fatal error LNK1104: cannot open file 'libboost_zlib-vc100-mt-gd-1_44.lib'

¿Alguien sabe qué estoy haciendo mal?

OriginalEl autor cppanda | 2011-02-08

6 Comentarios

  1. 5

    Me tomó un tiempo para conseguir Impulso para construir correctamente con zlib apoyo. Me escribió en su blog acerca de ello aquí.

    Para resumir, el problema que me encontré fue que en algún momento zlib no incluido un gzio.c archivo de origen. El jamfile para el Impulso del sistema de generación (jamfile.v2) había una referencia a la gzio módulo que la hizo fracasar. La solución fue quitar esa referencia antes de la construcción.

    No estoy seguro de que la respuesta a esto es relevante por más tiempo, a menos que usted está tratando de construir una versión antigua de Impulso. Creo que la versión original se ha corregido en las versiones más recientes de Boost.

    probé con sus scripts parámetros, pero no ha habido suerte. sólo más iostream versiones obtener compilado, pero no zlib estática bcn
    Aunque esto, en teoría, puede responder a la pregunta, sería preferible para incluir las partes esenciales de la respuesta aquí, y proporcionar el enlace de referencia.

    OriginalEl autor Ferruccio

  2. 15

    Me las arreglé para construir utilizando la opción

    -sZLIB_SOURCE=»C:\zlib-1.2.5″

    Nota no hay ningún espacio después de la -s y las comillas alrededor de la ruta.

    Sólo para dejarlo claro: Usted también no puede tener espacios EN la ruta de acceso. Eso es muy importante y, por supuesto, totalmente indocumentados.
    Me tomó dos horas para construir porque tenía espacios en la ruta. Yo odio el impulso de la documentación. Gracias por publicar esta sugerencia.
    oh, sí, que funcionó!!

    OriginalEl autor ecotax

  3. 3

    Yo tenía el mismo problema (Windows 7 de Visual Studio) y creo que el problema no está en cómo construir el impulso.

    1) Como ecotasa, no debe ser un espacio después de la-s
    2) Cuando se ejecuta bjam, añadir la bandera –debug-configuración. Si en el resultado de no ver los errores y se imprime algo como

    aviso: iostreams: el uso de predefinidos zlib

    entonces ha encontrado su zlib copia, lo cual es bueno.

    3) Observe que la biblioteca libboost_zlib-vc100-mt-gd-1_44.lib no debe ser producido.

    4) Cuando se compila la aplicación en Visual Studio, parece que el Impulso.Iostreams vinculación automática todavía quiere libboost_zlib-vc100-mt-gd-1_44.lib y los informes de un error de vínculo.

    Lo que funcionó para mí (yo fundada googlear) fue añadir a las definiciones del preprocesador la bandera

    BOOST_IOSTREAMS_NO_LIB

    A mí me funciona, pero después de la fijación de las definiciones del preprocesador, tengo estos errores. LNK2001 de error: símbolo externo sin resolver «int const boost::iostreams::zlib::default_compression». ¿Tiene usted alguna idea?
    Esto significa que bjam no encuentra la ruta de acceso a zlib y iostreams fue construido w/o zlib apoyo. Usted tiene que proporcionar ZLIB_INCLUDE y ZLIB_LIBPATH a la bjam con rutas correctas con su versión de zlib.

    OriginalEl autor Antoni

  4. 1

    Para los chicos, que la compilación, el uso de predefinidos «zlib».
    Estos pasos que hay que hacer:

    • Descargar y crear «zlib»
    • Ejecutar b2.exe –with-iostreams -s ZLIB_BINARY=zlib -s ZLIB_INCLUDE=C:/Sys/zlib-1.2.7/Include -s ZLIB_LIBPATH=C:/Sys/zlib-1.2.7/Lib liberación

    Las rutas de actualización para su local de instalación de zlib carpeta. De esta manera, Impulsar va a incrustar en la libboost_iostreams gzip.cpp, zlib.cpp los archivos. No libboost_zlib será generado.

    • En el archivo de origen de añadir estas líneas (en algún lugar en stdafx.h, antes de incluir el Impulso.Iostream encabezados):

    #ifdef _DEBUG
      #define BOOST_ZLIB_BINARY zlibd
    #else
      #define BOOST_ZLIB_BINARY zlib
    #endif

    Este le dice que usted no desea enlazar en contra de libboost_zlib, pero usted proporciona precompilado biblioteca zlib lugar.

    • En la configuración del proyecto proporcionar la ruta de acceso a zlib.archivo lib.
    • Debe compilar y vincular ahora.
    Va a trabajar, pero tengo la sensación de que la solución correcta es la siguiente. En primer lugar hacer b2.exe --with-iostreams -s ZLIB_INCLUDE=<path-to-zlib> [other options]. I. e., omitir la ZLIB_BINARY y ZLIB_LIBPATH interruptores, ya que son ignorados. A continuación, sólo vincular su proyecto con zlib bibliotecas manualmente. Sin embargo, yo soy demasiado perezoso para investigar correctamente 🙂

    OriginalEl autor Evgeny Yashin

  5. 1

    Tomé una combinación de asesoramiento de otras respuestas aquí y esto es lo que yo hice:

    Extracto de zlib para C:\zlib\zlib-1.2.11.

    Usar CMake para configurar y generar MS Visual Studio 2017 proyecto y el uso de MS Visual Studio 2017 para construir el proyecto. He construido en el lugar para que C:\zlib\zlib-1.2.11 ahora contiene (además de los contenidos previos) de los directorios lib e incluyen.

    Extracto de Impulsar 1.67.0 a C:\Boost\boost_1_67_0.

    (En la unidad C:)

    cd \Boost\boost_1_67_0
    bootstrap.bat
    set ZLIB_SOURCE="C:\zlib\zlib-1.2.11"
    set ZLIB_INCLUDE="C:\zlib\zlib-1.2.11\include"
    set ZLIB_LIBPATH="C:\zlib\zlib-1.2.11\lib"

    La siguiente línea construida libboost_iostreams y puso libboost_zlib archivos en C:\Boost\boost_1_67_0\stage\lib:

    b2 --debug-configuration --with-iostreams -sZLIB_SOURCE="C:\zlib\zlib-1.2.11" -sZLIB_INCLUDE="C:\zlib\zlib-1.2.11\include" -sZLIB_LIBPATH="C:\zlib\zlib-1.2.11\lib"

    La siguiente línea construyó el resto de Impulso:

    b2 -sZLIB_SOURCE="C:\zlib\zlib-1.2.11" -sZLIB_INCLUDE="C:\zlib\zlib-1.2.11\include" -sZLIB_LIBPATH="C:\zlib\zlib-1.2.11\lib"

    No sé si esta es la manera más óptima de hacerlo, pero lo hizo construir el libboost_zlib archivos lib.

    OriginalEl autor user2387519

  6. -1

    set ZLIB_SOURCE="c:\zlib"

    set ZLIB_INCLUDE="c:\zlib"

    .\b2

    .\bjam no va a construir, pero .\b2 va a construir la biblioteca: stage/libboost_zlib-vc100-mt-gd-1_44.lib

    OriginalEl autor N. Fan

Dejar respuesta

Please enter your comment!
Please enter your name here