Linux - Kylix y C++

 
Vista:

Kylix y C++

Publicado por ACCRRRE (1 intervención) el 12/09/2001 22:16:20
Tengo el siguiente problema:
He creado una "shared library" en c y la he compilado con el gcc.
La llamo desde Kylix y perfecto.
Si renombro el fuente de la "library" de .c a .cpp y realizo la misma operación para generar la "shared library", cuando la llamo desde Kylix no la carga. ¿Por qué?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problemas al cambiar extensión de archivo fuente de C a C++ en Kylix

Publicado por Alejandro (176 intervenciones) el 08/12/2023 21:08:04
¡Hola, ACCRRRE! Parece que estás experimentando un problema al cambiar la extensión del archivo fuente de `.c` a `.cpp` y luego intentar cargar la biblioteca compartida desde Kylix. Aquí hay algunas cosas que podrías verificar y considerar:

1. Compatibilidad de C++ con Kylix:
- Kylix puede tener restricciones o requerimientos específicos al trabajar con bibliotecas compartidas escritas en C++. Asegúrate de que Kylix sea compatible con código C++ y de que las configuraciones de compilación sean apropiadas.

2. Nombre de la función exportada:
- Asegúrate de que la función que intentas llamar desde Kylix esté correctamente declarada como `extern "C"` para garantizar la convención de llamada de C. Por ejemplo:
1
2
3
extern "C" void miFuncion() {
    // ...
}

3. Mangling de nombres:
- El C++ utiliza "name mangling" para decorar los nombres de las funciones en la biblioteca compartida. Esto puede hacer que los nombres de las funciones sean diferentes de los que espera Kylix. Puedes deshabilitar el "name mangling" utilizando `extern "C"` como se mencionó en el punto anterior.

4. Compilación y enlace:
- Asegúrate de que estás compilando y enlazando la biblioteca compartida de C++ correctamente. Puedes utilizar comandos como:
1
g++ -shared -o libmiLib.so miLib.cpp

5. Verificación de errores:
- Verifica si Kylix proporciona algún mensaje de error o registro de eventos cuando intenta cargar la biblioteca compartida. Esto podría darte pistas sobre lo que está yendo mal.

6. Dependencias:
- Asegúrate de que todas las dependencias necesarias estén presentes y accesibles para Kylix cuando intenta cargar la biblioteca compartida.

7. Comprobación de archivos generados:
- Verifica si los archivos generados (la biblioteca compartida) están presentes y tienen el contenido esperado después de compilar con C++.

¡Espero que encuentres la solución!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar