bibliotecas....
Salvador Ortiz Garcia
sog en msg.com.mx
Lun Oct 9 22:36:57 CDT 2000
On Mon, 9 Oct 2000, Rodolfo Conde Martinez wrote:
>
>
> Hola......
>
>
> Hace ya tiempo que no escribo a la lista....tengo una pequen~a duda, trato
> de: primero hacer una biblioteca compartida, los comandos que doy son:
>
> g++ -I../include -c -fPIC -DPIC lib.cxx
> g++ -shared -lotherlib -o libmylib.so.0 lib.o
> ar rcs libmylib.a lib.o
>
> luego cuando trato de compilar un programa que usa esta biblioteca:
>
> g++ -I../include -c app.cxx
> g++ -L../lib/ -lmylib -lotherlib -o app app.o
>
> pero ld parece no encontrar una funciones en mi biblioteca:
>
> /tmp/ccumzRhb.o(.text+0x7b9): undefined reference to `func_in_my_lib(xxxx)'
>
> Alguien sabe que falta ?? Algo que no hice bien... ??
Mira, según recuerdo (no programo en C++ desde hace años) la cosa es mas o
menos así:
Cuando quieres que una serie de funciones _simples_ (a la C) queden como
externas en una biblioteca dinámica requieres declararlas como:
extern "C" ...
o dentro de un bloque
extern "C" {
...
}
puesto que C++ normalmente hace 'name mangling' (por aquello del overload
y las funciones virtuales) y de ahí que el linker no las encuentre.
Si usas esa construcción para tu lib.cxx y _su correspondiente lib.h_, no
deberás tener ningun problema.
Espero que eso resuelva tu problema.
Saludos
Salvador Ortiz
---------------------------------------------------------
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