Pregunta

¿Alguien tiene alguna experiencia con la ejecución de aplicaciones C ++ que usan las bibliotecas de impulso en sistemas basados ??en uclibc? ¿Es posible? ¿Qué biblioteca estándar de C ++ usarías? ¿Se puede usar uclibc ++ con boost?

¿Fue útil?

Solución

Utilizamos Boost junto con GCC 2.95.3, libstdc ++ y STLport en una plataforma ARMv4 que ejecuta uClinux. Algunas partes de Boost no son compatibles con GCC 2.x, pero las que funcionan funcionan bien en nuestro caso particular. Las bibliotecas que más utilizamos son date_time , bind , function , tuple y thread .

Algunas de las bibliotecas con las que tuvimos problemas fueron lambda , shared_pointer y formato . Es probable que estos problemas hayan sido causados ??por nuestra versión de GCC, ya que tiene problemas cuando tiene demasiadas inclusiones o niveles profundos de estructuras de plantillas.

Si es posible, le recomendaría que ejecute el paquete de prueba de impulso con su cadena de herramientas particular para garantizar la compatibilidad. Como mínimo, podría compilar una cadena de herramientas nativa para asegurarse de que las versiones de su biblioteca sean compatibles.

No hemos usado uClibc ++ porque eso no es lo que recomienda nuestro proveedor de cadena de herramientas, por lo que no puedo comentar sobre esa combinación en particular.

Otros consejos

Estamos utilizando muchas de las bibliotecas de Boost (hilo, sistema de archivos, señales, función, enlace, cualquiera, asio, smart_ptr, tuple) en un Arcom Vulcan que es bastante potente para un dispositivo integrado (64M RAM, 533MHz XScale). Todo funciona de maravilla.

GCC 3.4 pero no estamos usando uclib ++ (Arcom proporciona una cadena de herramientas que incluye libstd ++).

Muchos dispositivos integrados ejecutarán con gusto muchas de las bibliotecas de Boost, suponiendo un soporte decente para el compilador. Solo ten cuidado con el uso. Las bibliotecas de Boost aumentan el nivel de abstracción y puede ser fácil usar más recursos de lo que piensas.

Busqué en Google " uclibc stlport " ;. Parece que hay al menos algunas versiones de uclibc para las cuales se puede compilar stlport (consulte esto ). Dado eso, diría que Boost está a solo unos pasos de compilación. He leído un mensaje de David Abrahams (que es un miembro activo de la comunidad de impulso) que dice que Boost no depende directamente de la biblioteca utilizada. Pero algunas bibliotecas aún pueden causar problemas, por ejemplo, Boost.Python, ya que depende de otra cosa (Python en mi ejemplo) que podría ser difícil de compilar con uclibc.

Espero que esto ayude

No lo he intentado pero no sé nada acerca de uclibc que impida que Boost funcione.

Pruébelo y vea lo que sucede, diría.

Sí, puedes usar boost con uclibc.
Intenté esto con boost 1.45 & amp; uclibc en ARM9260

  1. Use OpenEmbedded nuevo
  2. Configurarlo para usar Angstrom
  3. Configure Angstrom para usar uclibc
  4. make boost - bitbake boost
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top