Avatar ·

Cómo ver la lista de símbolos (funciones, clases) en un archivo .so en Linux

¡Hola a todos! Soy nuevo en C++ y apenas estoy empezando a entender las bibliotecas dinámicas (.so) en Linux. Tengo una biblioteca compilada a partir de varios archivos. Quiero verificar qué funciones y clases exporta, es decir, qué símbolos están disponibles para otros programas. Problema: compilé mi biblioteca `libmylib.so` con g++, pero cuando intento enlazarla con un programa de prueba, el linker da errores de "undefined reference". Sospecho que los nombres de las funciones se están distorsionando (name mangling) o que no las declaré correctamente como extern "C". Ejemplo de código que uso para compilar la biblioteca: ```cpp // mylib.h #pragma once void hello(); int add(int a, int b); ``` ```cpp // mylib.cpp #include "mylib.h" #include void hello() { std::cout << "Hello from lib!" << std::endl; } int add(int a, int b) { return a + b; } ``` Compilo así: ```bash g++ -shared -fPIC mylib.cpp -o libmylib.so ``` ¿Cómo puedo ver ahora qué símbolos