undefined refernece error when linking

gcc
Newbie Member
19Dec2008,09:57   #1
gcc's Avatar
Dear all ,
I have one shared library in "/usr/lib/ast/mod/quad.so"
where the functions "X1" and "X2" are defined.
In header file "quad.h" it is declared.
I have created a "test.c" where X1 and X2 are called
I have used the following commads for compiling and linking

#gcc -c test.c
#gcc -o test.o -L. -Wl,-rpath,/usr/lib/ast/mod/quad.so
i am getting the error:
undefined reference to X1
undefined refernece yo X2

what all things i have to do to make a proper linking
Mentor
19Dec2008,13:54   #2
xpi0t0s's Avatar
Change the commas to spaces.
gcc
Newbie Member
19Dec2008,14:21   #3
gcc's Avatar
i tried with spaced but now unrecoginised command is coming.
test.c
-----------
#include <stdio.h>
#include <quad.h>
int main(void)
{
X1 ();
X2 ();
return 0;
}

quad.h
-----------
extern void X1 ();
void X2 ();
Mentor
19Dec2008,15:57   #4
xpi0t0s's Avatar
What happens if you just try gcc test.c -o test /usr/lib/ast/mod/quad.so
gcc
Newbie Member
19Dec2008,16:30   #5
gcc's Avatar
I used that and i got lot of undefined references errors are coming.
when i use this i got only one undefined reference error.
Mentor
19Dec2008,16:39   #6
xpi0t0s's Avatar
No idea then, unless you fancy letting me know what errors you get.
gcc
Newbie Member
19Dec2008,18:18   #7
gcc's Avatar
the errors coming are:
#gcc -o test test.o /usr/lib/ast/mod/quad.so
/usr/lib/asterisk/modules/quad.so: undefined reference to `csel_get_next'
/usr/lib/asterisk/modules/quad.so: undefined reference to `ast_cli_register_multiple'
/usr/lib/asterisk/modules/quad.so: undefined reference to `ast_tv'
/usr/lib/asterisk/modules/quad.so: undefined reference to `ast_pbx_start'
/usr/lib/asterisk/modules/quad.so: undefined reference to `cm_load'

like this lot of errors are coming.
if usee the option which I posted first i got

test.o: In function `main':
test.c:(.text+0x12): undefined reference to `X1'
test.c:(.text+0x26): undefined reference to `X2'
collect2: ld returned 1 exit status