Hola En el manual " man dlsym " indica como se debe de tratar el problema de las referencias externas para usar el cargador de enlace dinamico.
Saludos http://linuxprogramacion.blogspot.com El día 06/08/10, Alejandro Vargas <[email protected]> escribió: > > He estado investigando sobre los shared objects. > > La función dlsym permite cargar dinámicamente funciones de un shared > object. El ejemplo que viene en el man es así: > > #include <dlfcn.h> > > int main(int argc, char **argv) { > void *manejador = dlopen ("/lib/libm.so", RTLD_LAZY); > double (*cosine)(double) = dlsym(manejador, "cos"); > printf ("%f\n", (*cosine)(2.0)); > dlclose(manejador); > } > > > Bien, lo que yo quisiera ver es cómo cargar no una función sino una > sección de datos contenida en un .so. Con objdump -t puedo listar e > incluso ver la ubicación y longitud de un bloque de datos. Me gustaría > hacer eso con un programa mio pero al parecer el dlsym no me carga > eso. Será que el dlsym sólo carga cosas que estén en el .text? El dato > que yo busco está en .rodata. y cuando intento cargarlo con dlsym me > da un error de "undefined symbol: xxxx" > > Hay alguna función diferente para esto? >
