sdasdadas sdasdadas - 2 months ago 7
C Question

Why can't gcc find my static library?

I am trying to link the cspec library into my C project. This is my Makefile located in the tests folder:

all: test

test: sample.o
gcc -Wall -o test sample.o -L ../lib/cspec -llibcspec.a

sample.o: sample.c
gcc -Wall -c sample.c -I../lib/cspec

clean:
rm -rf *o test


My directory is:

/
/src
/lib
/lib/cspec
/tests


When I run make I receive the following error:

gcc -Wall -o test sample.o -L ../lib/cspec -llibcspec.a
/usr/bin/ld: cannot find -llibcspec.a


I have made sure that the the libcspec.a file is located in the lib/cspec folder but to be sure I have also tried placing it within the tests folder and removing the -L command, to no avail.

Answer

Change:

gcc -Wall -o test sample.o -L ../lib/cspec -llibcspec.a

to:

gcc -Wall -o test sample.o -L ../lib/cspec -lcspec

(By convention, gcc and other *nix compilers automatically add the lib prefix and the appropriate suffix.)

Comments