GCC Dynamic library building problem

Posted by Sirish Kumar on Stack Overflow See other posts from Stack Overflow or by Sirish Kumar
Published on 2010-04-26T04:38:29Z Indexed on 2010/04/26 4:43 UTC
Read the original article Hit count: 297

Filed under:
|

I am new to linux, while compiling with dynamic library I am getting the segmentationfault error.

I have two files

ctest1.c

void ctest1(int *i) { *i =10; }

ctest2.c

void ctest2(int *i) { *i =20; }

I have compiled both files to a shared library named libtest.so using following command

  gcc -shared -W1,-soname,libtest.so.1 -o libtest.so.1.0.1 ctest1.o ctest2.o -lc

And I have wrote another program prog.c which uses functions exported by this library

prog.c

#include

void (ctest1)(int); void (ctest2)(int*);

int main() { int a;

ctest1(&a);

printf("%d",a);

return 0;

}

And when I have built the executable with following command

gcc -Wall prog.c -L. -o prog

But when I run the generated executable I get the SegmentationFault error.

When I checked the header of prog with ldd it shows

linux-vdso.so.1 => (0x00007f99dff000) libc.so.6 => /lib64/libc.so.6 (0x0007feeaa8c1000) /lib64/ld-linux-x86-64.so.2 (0x00007feeaac1c000)

Can somebody tell what is the problem

© Stack Overflow or respective owner

Related posts about gcc

Related posts about dynamic-linking