title: Trying to include a library, but keep getting 'undefined reference to' messages
body: <p>I am attempting to use the libtommath library. I'm using the NetBeans IDE for my project on Ubuntu linux. I have downloaded and built the library, I have done a 'make install' to put the resulting .a file into /usr/lib/ and the .h files into /usr/include</p>
  
  <p>It appears to be finding the files appropriately (since I no longer get those errors, which I did before installing into the /usr directories).</p>
  
  <p>However, when I create a simple main making a call to mp_init (which is in the library), I get the following error when I attempt to make my project:</p>
  
  <pre><code>mkdir -p build/Debug/GNU-Linux-x86
  rm -f build/Debug/GNU-Linux-x86/main.o.d
  gcc -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.c
  mkdir -p dist/Debug/GNU-Linux-x86
  gcc -o dist/Debug/GNU-Linux-x86/cproj1 build/Debug/GNU-Linux-x86/main.o
  build/Debug/GNU-Linux-x86/main.o: In function 'main':
  /home/[[myusername]]/NetBeansProjects/CProj1/main.c:18: undefined reference to `mp_init'
  collect2: ld returned 1 exit status
  make[2]: *** [dist/Debug/GNU-Linux-x86/cproj1] Error 1
  </code></pre>
  
  <p>So, it looks like the linker can't find the function within the library, however it IS there, so I just don't know what could be causing this.</p>
  
  <p>I get the same error if I type the gcc command directly and skip the makefile, I also made sure the static library got compiled with gcc as well.</p>
  
  <p>Edited to Add:</p>
  
  <p>I get these same errors if I do the compile directly and add the library with -l or -L:</p>
  
  <pre><code>$ gcc -l /usr/lib/libtommath.a main.c 
  /usr/bin/ld: cannot find -l/usr/lib/libtommath.a
  collect2: ld returned 1 exit status
  
  $ gcc -llibtommath.a main.c 
  /usr/bin/ld: cannot find -llibtommath.a
  collect2: ld returned 1 exit status
  
  $ gcc -Llibtommath.a main.c 
  /tmp/ccOxzclw.o: In function `main':
  main.c:(.text+0x18): undefined reference to `mp_init'
  collect2: ld returned 1 exit status
  
  $ gcc -Llibtommath.a main.c 
  /tmp/ccOxzclw.o: In function `main':
  main.c:(.text+0x18): undefined reference to `mp_init'
  collect2: ld returned 1 exit status
  </code></pre>
  
  <p>I am very rusty on this stuff, so I'm not sure I'm using the right command here, in the -L examples are the libraries being found? If the library isn't being found how on earth do I get it to find the library? It's in /usr/lib, I've tried it with the .a file in the current directory, etc.  Is there an environment variable I need to set?  If so, how, etc.</p>
  
  <p>I've tried a completely different library (GMP) and had the EXACT same problem. This has got to be some kind of Ubuntu environment issue? Anyone have any idea how to fix this?</p>