0
votes

Unfortunately yes.

I have my shared library compiled, the linker doesn't complain about not finding it but still I get undefined reference error. Thinking that I might be doing something wrong I did a little research and found this nice, simple walkthrough:

http://www.adp-gmbh.ch/cpp/gcc/create_lib.html

which I've followed to the letter but still I get:

$ gcc -Wall main.c -o dynamically_linked  -L.\ -lmean
/tmp/ccZjkkkl.o: In function `main':
main.c:(.text+0x42): undefined reference to `mean'
collect2: ld returned 1 exit status

This is pretty simple stuff so what's going wrong?! Is there something in my set up that might need checking/tweeking?

GCC 4.3.2 Fedora 10 64-bit

2
'\' is not the path separator. '/' is.Stephen

2 Answers

3
votes

Change:

$ gcc -Wall main.c -o dynamically_linked  -L.\ -lmean

to:

$ gcc -Wall main.c -o dynamically_linked  -L. -lmean



You probably meant to do this:

$ gcc -Wall main.c -o dynamically_linked  -L./ -lmean

which is OK, but the trailing / is redundant

0
votes

How was the library created? Libtool?

Show us an ls -l of your current directory, and look at what gcc -v <rest of your command> says (that gives details of what gcc is doing).