LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   undefined refrence while reverse dependency in shared library.. (https://www.linuxquestions.org/questions/linux-newbie-8/undefined-refrence-while-reverse-dependency-in-shared-library-750036/)

er_khatke 08-25-2009 01:56 AM

undefined refrence while reverse dependency in shared library..
 
Hi everyone ,
I am using loading a shared library dynamically in my code using dlopen() & then calling a function of it which in turn calling the function of my own program .But this is giving "undefined reference" problem .Please see the following snap of the code :

Code for main Program :
==================================
/*sample.c*/
#include <dlfcn.h>
#include "sample_header.h"
void main_fun(int k)
{
printf("\n ***** In Main Fun : %d",k);
}
void main()
{
char *error;
void (*sample_fptr)(int);
void *handle = dlopen ("./sample_shared.so", RTLD_LAZY);
if (!handle)
{
printf ("\n%s\n", dlerror());
return;
}

dlerror();
sample_fptr = dlsym(handle, "shared_fun");
if ((error = dlerror()) != 0)
{
printf ("\n%s\n", dlerror());
return;
}

(*sample_fptr)(7);
printf("Done ........\n");

}
compilation command used : gcc -ldl sample.c
==============================================================
------------------------
//sample_header declaration is :

/*sample_header.h*/
#include <stdio.h>
void main_fun(int k);

--------------------------


Code for sample_shared.c :
++++++++++++++++++++++++++++++
#include "sample_header.h"
void shared_fun(int k);
void shared_fun(int k)
{
main_fun(k);
}

compilation command : gcc -shared -Wall sample_shared.c -o sample_shared.so
++++++++++++++++++++++++++++

Result : ./sample_shared.so: undefined symbol: main_fun

Any suggestion to resolve this issue is appreciated.

Thanx in Advance
Kapil

Tinkster 08-25-2009 04:24 AM

Please post your thread in only one forum. Posting a single thread in the most relevant forum will make it easier for members to help you and will keep the discussion in one place. This thread is being closed because it is a duplicate.

http://www.linuxquestions.org/questi...ed-lib-750046/


In this case I'm closing the original because the dupe is more sensibly placed.


All times are GMT -5. The time now is 12:53 AM.