¿Por qué es tan complicado usar las bibliotecas de C ++?

12

En primer lugar, quiero señalar que me encanta C ++ y soy una de esas personas que piensan que es más fácil codificar en C ++ que en Java. Excepto por una pequeña cosa: las bibliotecas.

En Java, simplemente puedes agregar un poco de jarra a la ruta de compilación y listo.

En C ++, por lo general, debe establecer varias rutas para los archivos de encabezado y la propia biblioteca. En algunos casos, incluso tienes que usar banderas especiales de construcción. He utilizado principalmente Visual Studio, Code Blocks y ningún IDE. Las 3 opciones no difieren mucho al hablar sobre el uso de bibliotecas externas.

Me pregunto por qué no se hizo una alternativa más simple para esto. Como tener un archivo .zip especial que tiene todo lo que necesita en un solo lugar para que el IDE pueda hacer todo el trabajo por usted configurando las marcas de compilación. ¿Hay alguna barrera técnica para esto?

    
pregunta Pijusn 08.12.2012 - 17:51

2 respuestas

14

C ++ fue diseñado para mejorar el lenguaje C al hacer un lenguaje más sencillo y automatizado con soporte para programación orientada a objetos. Pero no hizo nada para cambiar o mejorar la forma en que C maneja las bibliotecas externas y los archivos de encabezado. C ++ no tiene un sistema de módulos como los lenguajes más modernos, todavía utiliza el preprocesador C y el sistema de enlace. Dado que uno de los objetivos establecidos de C ++ era la compatibilidad hacia atrás con el código C, esto no es realmente sorprendente. Cualquier sistema de módulos C ++ debería funcionar junto con el antiguo sistema de encabezado-archivo / enlazador de C. El comité de estándares de C ++ simplemente no ha logrado diseñar un sistema de módulos más moderno. (Aunque están trabajando en ello, vea el comentario de Klaim a continuación).

    
respondido por el Charles Salvia 08.12.2012 - 18:03
2

No es una barrera técnica. En Linux, su "archivo zip especial" es un paquete library-dev que instala con un administrador de paquetes, y configurar los indicadores de inclusión y vinculación es tan simple como agregar un par de líneas a su configure.ac que usa pkg-config para configurar las cosas.

Pkg-config también está disponible para Windows, pero las barreras culturales han impedido su adopción generalizada. Unix tiene un sólido historial de habilitación de portabilidad mediante la distribución de código fuente, por lo que incluyen las herramientas de desarrollo de forma gratuita. Windows tiene una sólida historia de alentar solo a los desarrolladores de distribución y carga binarios para las herramientas. Cuando ganas dinero vendiendo bibliotecas, no tiene sentido que sea más fácil para terceros proporcionarlas.

    
respondido por el Karl Bielefeldt 08.12.2012 - 19:15

Lea otras preguntas en las etiquetas