2012-08-29 16 views
13

Próbuję połączyć bibliotekę cspec z moim projektem C. To jest mój Makefile znajduje się w folderze testy:Dlaczego gcc nie może znaleźć mojej biblioteki statycznej?

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 

Mój katalog jest:

/ 
/src 
/lib 
/lib/cspec 
/tests 

Kiedy biegnę zrobić pojawia się następujący błąd:

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

Zrobiłem pewien, że plik libcspec.a znajduje się w folderze lib/cspec, ale mam pewność, że próbowałem go umieścić w folderze testów i usunąć polecenie -L, bezskutecznie.

+0

Spróbuj usunąć przestrzeń po '-L'. – jmkeyes

+1

@Joshua K: no - biała spacja po '-L' jest opcjonalna i nie robi różnicy. Ditto dla '-I'. –

Odpowiedz

26

Zmiana:

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

do:

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

(Umownie, GCC i innych * nix kompilatorów automatycznie dodać lib prefiks i odpowiednie rozszerzenie.)

+2

Czekaj, to działało (edytowane)! Dzięki! – sdasdadas

Powiązane problemy