¿Alguien tiene alguna experiencia con la ejecución de aplicaciones C++ que usan las bibliotecas de impulso en los sistemas basados en uclibc? ¿Es posible? ¿Qué biblioteca estándar de C++ usarías? ¿Se puede usar uclibC++ con boost?¿Puedo usar boost en uclibc linux?
Respuesta
Utilizamos Boost junto con GCC 2.95.3, libstdC++ y STLport en una plataforma ARMv4 corriendo uClinux. Algunas partes de Boost no son compatibles con GCC 2.x pero las que funcionan bien en nuestro caso particular. Las bibliotecas que utilizamos son los más fecha_hora, se unen , función, tupla y hilo.
Algunas de las bibliotecas que tuvimos problemas con fueron lambda, shared_pointer y formato. Es muy probable que estos problemas hayan sido causados por nuestra versión de GCC, ya que tiene problemas cuando tiene demasiados o niveles profundos de estructuras de plantillas.
Si es posible, le recomiendo que ejecute el paquete de prueba de refuerzo con su cadena de herramientas particular para garantizar la compatibilidad. Por lo menos, 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 herramientas, por lo que no puedo comentar esa combinación en particular.
¿Puedes aclarar el uso de STLport y libstdC++ juntos? ¿A cuál impulsa el enlace? – bmdhacks
Lo sentimos, enlaza a STLport. –
No he intentado pero no sé nada sobre uclibc que impida que Boost funcione.
Pruébalo y ve lo que sucede, diría yo.
Boost requiere una biblioteca C++ estándar, si tuviera que probarlo, ¿qué biblioteca C++ usaría? – bmdhacks
Además, "intentarlo" es un poco molesto para los sistemas integrados. ¿Estás diciendo que debería activar mi compilador cruzado y pasar horas y horas tratando de obtener impulso y una biblioteca de C++ en funcionamiento? Si toco algún obstáculo, ¿simplemente paso más tiempo con él o concluyo que es factible? – bmdhacks
Según la cantidad de información en la pregunta original, "pruébalo" es la única respuesta que debes esperar obtener. "Es posible ejecutar KDE 4 en mi computadora, responda sin que yo proporcione ninguna especificación sobre mi computadora". –
Estamos utilizando muchas de las bibliotecas de Boost (hilo, sistema de archivos, señales, función, bind, any, asio, smart_ptr, tuple) en un Arcom Vulcan que es ciertamente bastante poderoso para un dispositivo integrado (64M RAM, 533MHz XScale) . Todo funciona maravillosamente.
GCC 3.4 pero no estamos usando uclib ++ (Arcom proporciona una cadena de herramientas que incluye libstd ++).
Muchos dispositivos integrados estarán encantados de ejecutar muchas de las bibliotecas de Boost, suponiendo un soporte decente para el compilador. Solo ten cuidado con el uso. Las bibliotecas de Boost elevan el nivel de abstracción y puede ser más fácil usar más recursos de lo que piensas.
Gracias por la información. ¿Sospecha que la libstdC++ de Arcom es la biblioteca GNU? ¿Su sistema incluye glibc para libc? – bmdhacks
Sí, la libstdC++ de Arcom es la versión de GNU. Y sí, usamos glibc. uclib también debería funcionar, pero no hemos (aún) seguido ese camino. – MattyT
Gracias por la información, pero estoy más interesado en los sistemas basados en uclibc. Una vez que empiezas a usar glibc y GNU libstdC++, eres más o menos lo mismo que bueno ole RedHat en x86. Es posible que glibc y GNU libstdC++ sean las únicas formas de usar boost, pero espero que alguien sepa si ese es el caso. – bmdhacks
Busqué en Google "uclibc stlport". Parece que hay al menos algunas versiones de uclibc para las cuales stlport se puede compilar (ver this). Dado que, 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 libc utilizada. Pero algunas bibliotecas aún pueden causar problemas, Boost.Python por ejemplo, ya que depende de otra cosa (Python en mi ejemplo) que podría ser difícil de compilar con uclibc.
Esperanza esto ayuda
Gracias por la primera respuesta razonable. Me tienes a mitad de camino, lo cual es muy útil. Todavía estoy esperando a alguien con experiencia práctica o evidencia de que esto realmente se implemente, teniendo en cuenta la gran recompensa que he ofrecido. – bmdhacks
Sí, puede usar boost con uclibc.
Intenté esto con boost 1.45 & uClibc en ARM9260
- Uso fresca OpenEmbedded
- configurarlo para usar Angstrom
- Configurar Angstrom utilizar uClibc
- maquillaje impulso - bitbake impulsar
- 1. Boost Asio en Linux sin usar Epoll
- 2. ¿Alguna portabilidad disponible de backtrace para uclibc?
- 3. Compilación cruzada PHP con UCLIBC
- 4. Building Boost en Linux - nombres de biblioteca
- 5. ¿Puedo usar boost :: enable_if en una función miembro?
- 6. ¿Cómo puedo usar la biblioteca Boost :: regex.hpp en C++?
- 7. Cómo usar boost :: crc?
- 8. Cómo usar boost :: unit_test?
- 9. ¿Puedo usar boost :: threadpool como una 'cola segura para hilos'?
- 10. Boost - compilación cruzada - "de Linux" "a Windows"
- 11. ¿Puedo usar boost :: make_shared con un constructor privado?
- 12. Establecimiento de prioridad de subprocesos en Linux con Boost
- 13. boost :: filesystem y Unicode en Linux y Windows
- 14. ¿Puedo usar strtok() en un Módulo Kernel de Linux?
- 15. ¿De qué sirve usar boost :: mem_fn si tenemos boost :: bind?
- 16. Linking boost a la biblioteca compartida con CMake en Linux
- 17. Cómo usar boost :: error_info correctamente?
- 18. Cómo usar boost :: smart_ptr en polimorfismo?
- 19. Cómo usar copy_file en boost :: filesystem?
- 20. Instalar y compilar la biblioteca Boost en Linux
- 21. no compila si incluye boost/thread en Linux Ubuntu:) 10.10
- 22. Cómo usar boost Boost con una función de miembro
- 23. ¿Alguien compiló Mono cruzado para MIPS 64 usando uClibc?
- 24. ¿Cómo puedo usar Boost.Bind en tipos compuestos?
- 25. ¿Por qué usar boost :: ice_or en lugar de || y boost :: ice_and en lugar de && en enable_if?
- 26. ¿Es posible usar xcodebuild en Linux?
- 27. referencia indefinida al usar ncurses en Linux
- 28. Boost :: Asio: io_service.run() vs poll() o cómo puedo integrar boost :: asio en mainloop
- 29. Cómo forzar a Boost a usar rpath?
- 30. ¿Cómo usar boost :: mpl para redactar políticas?
Hay manuales amistosas existentes. Solo, ya sabes, diciendo. También me gustaría cuestionar el uso de impulsar en un sistema integrado de todos modos ... parece una gran cantidad de sobrecarga para el trabajo integrado. –
Estoy evaluando impulsar una aplicación empresarial para sistemas de clase servidor, pero hay algunos beneficios de reducir a escala los sistemas integrados. Esto no es puramente incrustado o usaría algo más, pero impulsar trae mucho a la mesa si puedes cambiarlo. – bmdhacks
Boost tiene muchas bibliotecas, estoy seguro de que algunas funcionarán y las probabilidades son que algunas no funcionarán. ¿De qué partes de impulso estamos hablando? –