[LUGAr-gral] dlsym() vs. C/C++

Martin Gomez daguito en ciudad.com.ar
Sab Nov 25 18:24:50 CST 2000


Hola Miguel,


MC> Holas!!!

MC> Que onda chavos, ya se que onda con esto... con el compilador de C las
MC> funciones las acceso con su mismo nombre, pero el compilador de C++ ocurre que
MC> le "pega" algo mas al nombre de la funcion... pense que ya la habia librado,
MC> pero orita descubri que siempre le pega algo diferente, por lo cual no puedo
MC> hacer librerias sin saber cual es el nombre final que tendra la funcion en el
MC> codigo objeto...

MC> Por ejemplo, supongamos que tengo una funcion 

MC>    int Sumar (int a, int b) { return a+b; }

MC> si este codigo lo compilo con el compilador de C, la funcion resultante se
MC> llama Sumar y la acceso con dlsym(handle,"Sumar"); pero resulta que si compilo
MC> con el compilador de C++ le cambia el nombre a la funcion, bueno mas bien le
MC> agrega algo mas... pero depende en conjunto con que compile la libreria para
MC> que el nombre cambie, a veces es Sumar__Fii en otras ocaciones Sumar__FPsadf
MC> y letras diferentes... necesito que independientemente de con que otra chiva se
MC> compile la libreria, la funcion siempre tenga el mismo nombre...

MC> La idea es... porque no uso C ??? porque tengo clases definidas, y a la vez
MC> funciones normales que hacen uso de objetos internamente... por lo mismo debo
MC> compilar como C++

MC> Alguna sugerencia??? me tomo 2 dias descubrir que pasaba, ora necesito saber
MC> como solucionar esto... osea solo necesito saber si es posible que en el codigo
MC> objeto una funcion (normal, no miembro de una clase) no cambie su nombre...

declararla como 'extern "C"' no anda?
asi es como declaro las funciones de librerias hechas en C para
usarlas desde C++, pero nunca lo probé haciendo una librería yo...

MC> Gracias!!!

de nada, espero que ande :-)

-- 
 Martin Gomez
 Linux Freak #177381


---------------------------------------------------------
para salir de la lista, enviar un mensaje con las palabras
"unsubscribe ayuda" en el cuerpo a majordomo en linux.org.mx



Más información sobre la lista de distribución Ayuda