Подтвердить что ты не робот

Почему gcc не может найти мою статическую библиотеку?

Я пытаюсь связать библиотеку cspec с моим проектом C. Это мой файл Makefile, расположенный в папке тестов:

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

Мой каталог:

/
/src
/lib
/lib/cspec
/tests

Когда я запустил make, я получаю следующую ошибку:

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

Я убедился, что файл libcspec.a находится в папке lib/cspec, но я также попытался поместить его в папку тестов и удалить команду -L, но безрезультатно.

4b9b3361

Ответ 1

Изменить:

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

в

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

(По соглашению, gcc и другие * nix-компиляторы автоматически добавляют префикс lib и соответствующий суффикс.)