Hello everybody. I'm trying to load libraries with g_module_open in windows and linux, I don't have problems in Windows, can load perfectly the libraries. but when I do it in linux tells me that don't find the function I am compile mi libmilib.so with ///file1.cpp float xfun(int d){ float res; res = d * 3; return res; } //milib.h #ifndef __MILIB_H_ #define __MILIB_H_ float xfun(int d); #endif //makefile of libmilib.so CFLAGS=-Wall -I. libmilib.so: file1.o ld -o libmilib.so file1.o -shared file1.o : file1.cpp g++ -c $? //program for load libraries is #include <stdio.h> #include <stdlib.h> #include <string.h> #include <gtk/gtk.h> #include <glib.h> #include <gmodule.h> typedef float (*xfun)(int d); xfun auxFun; int main(){ GError **error; char xlib[300]; char namefun[30]; float res; FILE *fp; GModule *milib=NULL; error=NULL; sprintf(xlib,"/home/shadown/Desktop/misProg/make_ejemplos/gmodule/lib/libmilib.so"); sprintf(namefun,"xfun"); printf("%s",xlib); //fp = fopen(xlib,"rb"); fp = fopen("libmilib.so","rb"); if(fp==NULL){ printf("\nI can open libmilib.so"); } else{ printf("\nI can't open libmilib.so"); fclose(fp); } //Check supported if(!g_module_supported()){ printf("\nNo supported\n"); return 0; } //Load lib milib = g_module_open (xlib, G_MODULE_BIND_LAZY); if(!milib){ printf("\nCan't load library: %s",xlib); printf("\nError: %s",g_module_error ()); printf("\nCan't load modules, You can't use user function\n"); return 0; } else{ //Load function if (!g_module_symbol (milib,namefun, (gpointer *)&auxFun)){ printf("\nUnable load function in: %s",xlib); printf("\nError: %s", g_module_error ()); printf("\nCan't load modules, You can't use user function\n"); if (!g_module_close (milib)) g_warning ("\nm: %s", g_module_error ()); return 0; } else{ //Use function res = auxFun(3); printf("\nres = %f",res); } } return 0; } //Makefile of main program CFGTK := `pkg-config --cflags --libs gtk+-2.0 gmodule-2.0` prog : loadlib.cpp g++ ${CFGTK} $? -o prog And rename function, and made a program that uses the library and works, but when I try to load the function with g_module_symbol, I can not When I print the error, I have the following: Error: `xfun': /home/shadown/Desktop/misProg/make_ejemplos/gmodule/lib/libmilib.so: undefined symbol: xfun the function print between ( ` ) and ( ' ) I do not know if this error there. can somebody help me? __________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! Regístrate ya - http://correo.yahoo.com.mx/ _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list