2009-05-11 12 views
14

He escuchado muchos buenos comentarios acerca de Boost en el pasado y pensé que lo probaría. Así que descargué todos los paquetes requeridos desde el administrador de paquetes en Ubuntu 9.04. Ahora estoy teniendo problemas para descubrir cómo usar realmente las bibliotecas de darn.Usando Boost en ubuntu

¿Alguien sabe de un buen tutorial sobre Boost que va desde Hello World hasta Advanced Topics, y también cubre cómo compilar programas usando g ++ en ubuntu?

Respuesta

16

acordados; the boost website tiene buenos tutoriales en su mayor parte, desglosados ​​por sub-biblioteca.

En cuanto a la compilación, un buen 80% de la implementación de la biblioteca se define en los archivos de encabezado, por lo que la compilación es trivial. por ejemplo, si desea utilizar de shared_ptr, que le acaba de añadir

#include <boost/shared_ptr.hpp> 

y compilar como lo haría normalmente. No es necesario agregar rutas de biblioteca a su comando g ++, o especificar -llibboost. Siempre que el directorio de impulso esté en su ruta de inclusión, ya está todo listo.

De la documentación impulso:

Las únicas bibliotecas que necesitan ser compilados y vinculados son los siguientes: Las únicas bibliotecas Boost que deben ser construidas por separado son:

  • Boost.Filesystem
  • Boost.IOStreams
  • Boost.ProgramOptions
  • Boost.Python (ver la acumulación Boost.Python hacer cumentation antes de construir e instalarlo)
  • Boost.Regex
  • Boost.Serialization
  • Boost.Signals
  • Boost.Thread
  • Boost.Wave

Algunas bibliotecas tienen por separado- opcional compilados binarios:

  • Boost.DateTime tiene un componente binario que solo es necesario si está utilizando sus características to_string/from_string o serialización, o si está apuntando a Visual C++ 6.xo Borland.
  • Boost.Graph también tiene un componente binario que solo es necesario si tiene la intención de analizar los archivos GraphViz.
  • Boost.Test se puede utilizar en el modo "solo encabezado" o "compilado por separado", aunque se recomienda la compilación por separado para un uso serio.

lo tanto, si usted está utilizando una de las bibliotecas de la lista, utilice el Getting Started guide para, así, que pueda empezar a compilar y vincular a Boost.

-1

Las bibliotecas vienen con documentación y muchas de ellas tienen tutoriales como parte de la documentación. Solo comienza a leer.

+0

Dónde son los archivos de Boost almacenados en mi computadora. No los descargué del sitio web de Boost. – Kredns

+1

puede encontrar la ubicación de los archivos usando su administrador de paquetes. Usualmente está en/usr/include/boost y/usr/lib/libboost_ * –

+0

Pero usando el tutorial que me ha proporcionado no se compilará. ¿Hay alguna forma en que pueda usar la característica de backtick de g ++? – Kredns

5

La página web Boost tiene algunos buenos tutoriales, son sólo tipo de hidden.

-1

Boost no es un lenguaje de programación ni un marco de aplicación, ya que no es más que un conjunto de bibliotecas, no existe el programa "Hello World" de Boost. La mayoría de las bibliotecas en Boost se pueden usar de forma más o menos independiente, y varían en tamaño desde una función hasta bibliotecas masivas que pueden funcionar por sí solas.

La mejor forma de familiarizarse con Boost es simplemente probarlo mientras escribe un nuevo código. Use smart_ptr siempre que pueda; use MPL la próxima vez que quiera hacer un trabajo en tiempo de compilación. Hay mucha variedad en Boost, pero probablemente deberías comenzar a buscar en la sección de Utilidades; esas son las bibliotecas más livianas y más usadas.

+0

Justificación del voto negativo: 'Hello World' puede significar un primer ejemplo, excesivamente simple, que conecta todas las tuberías.El programa original 'Hello World' C requiere que uno pueda acceder a la computadora, crear la fuente del programa, guardar, compilar, vincular, ejecutar y examinar los resultados. –

3

La documentación de la biblioteca es mixta. Algunos son buenos, pero algunos son más una referencia que una guía. La mejor guía para (algunas de) las bibliotecas de Boost es el libro Beyond the C++ Standard Library. Por lo menos, la introducción ofrece descripciones de un párrafo de muchas de las bibliotecas. Desde allí, puede decidir qué biblioteca es la más importante para sus necesidades actuales y, si está en el libro, lea el capítulo sobre ella o lea la documentación en el sitio web.

Si lees alemán, hay un good online guide. El traductor de Google hace un trabajo lo suficientemente bueno como para que un persona que no habla como yo pueda entenderlo.

Además, a menos que tengas mucha experiencia con C++, comenzaría con las bibliotecas más simples (por ejemplo, smart_ptr, tuple, conversión, tokenizer, regex, date_time, prueba), antes de probar las más complicadas (bind, variant) , any), o los realmente avanzados (conceptos, MPL, Fusion).

3

Utilizando Easypeasy 1.1 (para netbooks) que se basa en Ubuntu, pude utilizar Synaptic Package Manager para instalar, creo, libboost-dev. Después, simplemente añadiendo:

#include "boost/foreach.hpp" 

yo era capaz de sustituir las líneas existentes en una aplicación existente (que tiene una Pregunta clase que no tiene nada que ver con el impulso):

for (std::vector<Ask*>::iterator ii=ui.begin(); ii!=ui.end(); ++ii) 
    std::cout << (*ii)->prompt() << (*ii)->answer() << std::endl; 

con:

BOOST_FOREACH (Ask* ii, ui) 
    std::cout << ii->prompt() << ii->answer() << std::endl; 

Según entiendo, esta es una característica exclusiva del encabezado. No he usado nada que requiera cambios de tiempo de enlace todavía.

1

Estaba mirando esa guía de impulso alemana, y encontré que también había un english (el mismo libro). Se ve bastante bien, acabo de leer las páginas introductorias que son bastante útiles

Cuestiones relacionadas