2010-05-22 9 views
21

Hecho un nuevo proyecto, agregó main.cpp y escribió el código en la siguiente dirección:error grave LNK1104: no se puede abrir el archivo 'libboost_system-vc90-mt-gd-1_43.lib'

http://www.boost.org/doc/libs/1_43_0/doc/html/boost_asio/example/echo/async_tcp_echo_server.cpp

también , se agregó la ruta de inclusión apropiada.

¿Qué sigue?!? !! ¡Parece un maldito misterio construir un código de impulso!

He estado hurgando en él durante más de 10 horas.

¿Alguien puede dar una respuesta directa sobre cómo construir la biblioteca de impulso desde el código en Windows, VC9?

Respuesta

18

Tienes que usar bjam. Es responsable de crear las bibliotecas que usará su aplicación. Una vez que use bjam, tendrá que indicarle a su proyecto que incluya el archivo lib. Para ello, vaya a las propiedades del proyecto -> Propiedades de configuración -> Enlazador -> General. Agregue el directorio que creó el archivo lib a los directorios de biblioteca adicionales. Deberías ser capaz de enlazar correctamente después de eso. Creo que this link describe los pasos mejor que los que pude intentar en una publicación

+0

todo lo que tenía que hacer era agregar C: \ Boost \ x86 \ lib a los directorios de biblioteca adicionales mencionados anteriormente – Brent

+4

en 1.5 \ stage \ lib debe agregarse. –

9

No todas las bibliotecas de Boost son solo encabezado, Boost.System es una de ellas. El documentation para Boost.Asio le dice que depende de Boost.System.

Con Visual Studio, las bibliotecas de Boost usan auto-linking, lo que significa que no tiene que vincular explícitamente a las bibliotecas que necesita. Sin embargo, debe tener las bibliotecas necesarias en la ruta de búsqueda de la biblioteca, ya sea globalmente o por proyecto.

Si no desea construir las bibliotecas de Boost usted mismo, puede usar el installers provisto por boostpro (solo hasta Boost 1.42 por el momento). Si quiere construirlos usted mismo, el documentation lo cubre bien.

16

@bogertron: ¡Quiero abrazarte! (:

Así que, por fin, con un verdadero dolor de cabeza, me las he arreglado para hacerlo

Los pasos exactos que tomé, para que otros se salvaron del dolor de cabeza:.

  1. Fui a http://www.boost.org/doc/libs/1_43_0/more/getting_started/windows.html#or-build-binaries-from-source

  2. Seguido la cláusula de "Get 5.3.1 bjam" Se ha cargado la "ejecutable bjam pre-construidos para su plataforma" en la siguiente dirección:... http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941

  3. Extrajo el archivo ZIP (mi plataforma es Windows).

  4. Ran "build.bat". Produjo el archivo "bin.ntx86/bjam.exe".

  5. Copié este archivo en mi RUTA ("...../boost_1_43_0 /").

  6. Desde una línea de comandos, ejecute "bjam.exe" y espere unos 4-5 minutos.

Luego recibí este mensaje en la consola: "¡Las bibliotecas Boost C++ se construyeron con éxito!"

Eso es todo, incluso te dice dónde están los archivos lib & incluidos.

0

En Visual Studio, haga clic en su proyecto, y luego ir a propiedades y seleccione:

Propiedades -> Propiedades de Configuración -> Enlazador

Hay que añadir la ruta completa de su biblioteca en la pestaña llamada "Directorios adicionales de la biblioteca".

-1

Ahora, con la boost_1.50 Boost.build está incluido en el archivo zip: comprobar tools\build\v2\ o mejor lectura: ...boost_1_50_0/more/getting_started/windows.html

0

Desde el "Boost Getting Started llegar":

"5.2 O Construir simplificado Desde Source

Si desea compilar desde código fuente con Visual C++, puede usar un sencillo procedimiento de compilación descrito en esta sección. Abra el símbolo del sistema y cambie su directorio actual al directorio raíz de Boost. Luego, escriba los siguientes comandos :

arranque . \ B2"

En Windows, me abrió la línea de comandos de Visual Studio desde el menú de inicio. Primero escribo "bootstrap" y luego escribo ". \ B2".

1

Tuve el mismo error y seguí el SourceForge. El enlace lo llevará a una carpeta de archivos comprimidos dll y lib para la versión de boost. Puede descargar y descomprimir la biblioteca relacionada y cuando se copie en la ubicación relacionada todo va a estar bien;)

Cuestiones relacionadas