Esta es una continuación de Dynamic Shared Library compilation with g++.Biblioteca compartida dinámica de C++ en Linux
Estoy tratando de crear una biblioteca de clases compartida en C++ en Linux. Puedo hacer que la biblioteca compile y puedo llamar a algunas de las funciones (que no son de clase) usando los tutoriales que encontré here y here. Mis problemas comienzan cuando trato de usar las clases que están definidas en la biblioteca. El segundo tutorial al que he vinculado muestra cómo cargar los símbolos para crear objetos de las clases definidas en la biblioteca, pero se detiene antes de usando esos objetos para realizar cualquier trabajo.
¿Alguien sabe de un tutorial más completo para crear bibliotecas de clases C++ compartidas que también muestra cómo usar esas clases en un ejecutable independiente? Un tutorial muy simple que muestra creación de objetos, uso (getters y setters simples estarían bien), y la eliminación sería fantástica. Un enlace o una referencia a algún código fuente abierto que ilustre el uso de una biblioteca de clases compartida sería igualmente bueno.
Aunque las respuestas de codelogic y nimrodm hacer el trabajo, sólo quería añadir que he recogido una copia de Beginning Linux Programming ya hacer esta pregunta, y su primer capítulo tiene código de ejemplo C y buenas explicaciones para la creación y uso ambas bibliotecas estáticas y compartidas. Estos ejemplos están disponibles a través de la Búsqueda de libros de Google en an older edition of that book.
No estoy seguro de entender lo que quiere decir con "usarlo", una vez que se devuelve un puntero al objeto, puede usarlo como si usara cualquier otro puntero a un objeto. – codelogic
El artículo al que he vinculado muestra cómo crear un puntero de función a una función de fábrica de objetos utilizando dlsym. No muestra la sintaxis para crear y usar objetos de la biblioteca. –
Necesitará el archivo de encabezado que describe la clase. ¿Por qué crees que tienes que usar "dlsym" en lugar de simplemente dejar que el sistema operativo encuentre y vincule la biblioteca en el momento de la carga? Avíseme si necesita un ejemplo simple. – nimrodm