[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]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