Ответ 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
и соответствующий суффикс.)
Я пытаюсь связать библиотеку 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, но безрезультатно.
Изменить:
gcc -Wall -o test sample.o -L ../lib/cspec -llibcspec.a
в
gcc -Wall -o test sample.o -L ../lib/cspec -lcspec
(По соглашению, gcc и другие * nix-компиляторы автоматически добавляют префикс lib
и соответствующий суффикс.)